应用中所有的 state 都以一个对象树的形式储存在一个单一的 store 中。 惟一改变 state 的办法是触发 action,一个描述发生什么的对象。 为了描述 action 如何改变 state 树,你需要编写 reducers。
1、通过action创建函数,可以创建action~
2、reducer是一个纯函数,接收action和旧的state,生成新的state.(reducer就是纯函数,接收state 和 action,然后返回一个新的 state。)
3、store 就是把它们联系到一起的对象。store 有以下职责:
- 维持应用的
state; - 提供
getState()方法获取state; - 提供
dispatch(action)触发reducers方法更新state; - 通过
subscribe(listener)注册监听器; - 通过
subscribe(listener)返回的函数注销监听器。
redux的数据流:
- 调用
store.dispatch(action)提交action。 redux store调用传入的reducer函数。把当前的state和action传进去。- 根
reducer应该把多个子reducer输出合并成一个单一的state树。 Redux store保存了根reducer返回的完整state树。