关于redux其实官网上已经给了一个详细的例子。
//1.首先我们要定义计算规则
function counter(state = 0, action) {
switch (action.type) {
case 'INCREMENT':
return state + 1
case 'DECREMENT':
return state - 1
default:
return state
}
}
这里state参数如果没有的话我们把他赋值为0,这里是es6的写法
//2根据计算规则生成store
let store =createStore(counter);
//3定义数据(即state)变化后的派发规则
store.subscribe(()=>{
console.log('fn1->current state',store.getState())
})
store.subscribe(()=>{
console.log('fn2->current state',store.getState())
})
4://触发数据时的变化
首先在第一步里面我们注意到直接return到的是state-1而不是直接给state赋新值,store.dispatch({ type: 'INCREMENT' }) store.dispatch({ type: 'INCREMENT' }) store.dispatch({ type: 'DECREMENT' })
同时reducer是我们所定义的规则对应着第四步里面的store.dispatch
store相当于我们数据的寄存器
第三,派发规则,相当于订阅发布的模式,如果有变化执行派发规则,getStore相当于获取我们变化的state
第四步,也就是我们dispatch进行数据变化