今天又回头看了redux 和 react-redux的应用。对redux的数据模式有深入理解。
并纪录了5个问题,后续补上文中问题的源码
先说redux:
- 首选定义规则
//规则函数就是实现了一个判断 function counter(state = 0,action){ //es6模式传参数 switch(action.type){ case 'INCREMENT': return state+1 //在这里函数返回的数据不影响state case 'DECREMENT': return state-1 // default: return state } }复制代码
- 根据规则生成store
//这里有个问题,传的参数是counter函数,并取的counter函数 返回的数据 //下面又是如何将数据传到store.getState()函数中的呢?为什么不通过store直接获取呢??? let store = createStore(counter) 复制代码
- 监听数据(即state),变化后的派发规则
// subscribe()在源码中是如何定义的???何时触发??? store.subscribe(()=>{ console.log('current state', store.getStore()) //这里是如何取到store中的数据??? })复制代码
- 触发数据变化
//在这里可以看到store不仅仅在第2步中定义规则函数返回的数据,//还定义了dispatch函数,dispatch函数在源码中是如何定义的???何时触发???store.dispatch({ type:"INCREMENT"})store.dispatch({ type:"DECREMENT"})复制代码