Redux-进化的flux
也是 Flux 里面“单向数据流”的思想,只是它充分利用函数式的特性,Redux 是超越 Flux 的一次进化。
1、进化 Flux
flux 的 action creator
export function addTodo(text) {
AppDispatcher.dispatch({
type: ActionTypes.ADD_TODO,
text: text
});
}
redux 的 action creator
export function addTodo(text) {
return {
type: ActionTypes.ADD_TODO,
text: text
};
}
flex 的 store
let _todos = [];
const TodoStore = Object.assign(new EventEmitter(), {
getTodos() {
return _todos;
}
});
AppDispatcher.register(function (action) {
switch (action.type) {
case ActionTypes.ADD_TODO:
_todos = _todos.concat([action.text]);
TodoStore.emitChange();
break;
}
});
export default TodoStore;
redux 的 store
const initialState = { todos: [] };
export default function TodoStore(state = initialState, action) {
switch (action.type) {
case ActionTypes.ADD_TODO:
return { todos: state.todos.concat([action.text]) };
default:
return state;
}