store.js:
count_reducer.js:
1. reducer 的本质是个函数,接收:preState, action, 返回加工后的状态;
2. reducer 有两个作用:初始化状态,加工状态并返回;
3. reducer 第一次被调用时,是 store 自动出发的,传递的 preState 是 undefined。
页面组件:
引入store:
API-01: store.getState()
获取 redux的值
API-02: store.subscribe()
监测 redux的变化,并强制更新render
(因为redux只负责状态管理,至于状态的改变驱动着页面的展示,需要我们自己手动更新,所以我们强制render)
API-03: store.dispatch()
改变 redux的值
改良:
store.subscribe, 将 "redux 监测到状态改变后页面重新render" 的逻辑移到项目根文件index.js中(这样就不需要在每一个页面组件中都强制更新一次render):