Redux -- Store

68 阅读1分钟

Store

在前面的章节中,我们知道了:

  • action 就是用来描述 "发生了什么的" 对象
  • reducer 就是根据 action 来进行具体相关操作来返回新 state 的函数

Store 就是维持应用所有的 state树 的对象,并把action和reducer联系在一起!!

主要职责如下:

  • 维持应用的所需的所有 state

  • getState() 方法获取 state

  • dispatch(action) 方法派发动作 action 更新 state

  • subscribe(listener) 注册监听器

  • repalceReducer(nextReducer)

注意: Redux应用下只有一个唯一的 store,要将多个 reducer 合并为一个主reducer后作为参数传进 store 的创建函数 createStore() 中创建 store!!

createStore() 的第二个参数是可选的,用于设置 state 的初始状态。

1807.png

主要方法如下:

(1) getState()

  • 返回当前应用的 state树

(2) dispatch()

  • 派发 action ,是出发更新 state 的唯一途径

会使用 getState() 的结果和传入的 action 对象以 同步 的方式调用 store 的 reducer 函数。返回值作为新的state。同时触发变化监听器!!

  • 参数 : action 对象

(3) subscribe(listener) 注册监听器

  • 参数为监听器函数,每当 dispatch action 时都会执行

(4) replaceReducer(nextReducer)

  • 替换 store 当前用来计算 state 的 reducer!!

只有在已经实现代码分离,并且需要立即加载一些 reducer 的时候才会用到它!!!