Redux待续。。。

87 阅读1分钟

三大原则:

Redux 可以用这三个基本原则来描述:

  1. 单一数据源, 整个应用的 state 被储存在一棵 object tree 中,并且这个 object tree 只存在于唯一一个 store 中。
  2. State 是只读的, 唯一改变 state 的方法就是触发 action,action 是一个用于描述已发生事件的普通对象。
  3. 使用纯函数来执行修改, 为了描述 action 如何改变 state tree ,你需要编写 reducers。

核心思想:

要想更新 state 中的数据,你需要发起一个 action。Action 就是一个普通 JavaScript 对象,用来描述发生了什么。下面是一些 action 的示例

如何应用:

源码解析:

  1. action: 用来描述“发生了什么”

  2. reducers: 用来描述应用如何更新state,根据 action 更新 state. reducer 它仅仅用于计算下一个state。它就是一个纯函数,它应该是完全可预测的:多次传入相同的输入必须产生相同的输出。它不应做有副作用的操作,如 API 调用或路由跳转。这些应该在 dispatch action 前发生。 (previousState, action) => newState //接收旧的 state 和 action,返回新的 state。

  3. Store:Redux 应用只有一个单一的 store。当需要拆分数据处理逻辑时,你应该使用 reducer组合, 而不是创建多个 store。createStore(rootReducer);

Store 有以下职责:

  • 维持应用的 state,
  • 提供 getState() 方法获取 state;
  • 提供 dispatch(action) 方法更新 state;
  • 通过 subscribe(listener) 注册监听器,并 return 注销监听器函数。