javascript 代码
'use strict';
const Redux = require('redux');
const createStore = Redux.createStore;
const combineReducers = Redux.combineReducers;
function aReducer(state = [], action) {
switch(action.type) {
case 'a':
/*应该返回一个全新的state*/
return state.concat([action.data]);
default:
return state;
}
}
function bReducer(state = [], action) {
switch(action.type) {
case 'b':
return state.concat([action.data]);
default:
return state;
}
}
/*多个reducer需要与state结构相对应*/
const reducers = {
a: aReducer, //会将store中state中的键值 'a' 对应的值传给函数 aReducer的第一个参数
b: bReducer //会将store中state中的键值 'b' 对应的值传给函数 bReducer的第一个参数
};
/*合并多个reducer为一个reducer*/
const reducer = combineReducers(reducers);
/*第二个参数为初始化store的state*/
const store = createStore(reducer, {
a: [111],
b: [222]
});
/*一旦dispatch被触发,subscribe中注册的监听器也会触发*/
store.subscribe(() => {
console.log(store.getState()); //获取store中的最新state
})
let action = {
type: 'a',
data: 'exwe'
};
store.dispatch(action);