redux 理论

redux 是JavaScript 状态容器,提供可预测化的状态管理。可以构建一致化的应用,运用于不同的环境(客户端、服务端、原生应用),并且易于测试。

redux 三个基本原则:单一数据、State 是只读、使用纯函数来执行修改(Reducer)。

Action

Action 是把数据从应用传到store 的有效载荷。它是store 数据的唯一来源,一般通过store.dispatch() 将action 传到store。

Reducer

Reducer 指定了应用状态的变化如何响应actions 并发送store的。ps. actions 只是描述了事情发生了这一事实,并没有描述如何更新state。

Action 处理

reducer 是一个纯函数,接收旧的state 和action,返回新的state-- (previousState, action)=>newState。保持reducer 纯净度非常重要,不能做修改传入参数、执行有副作用的操作,如API 请求和路由跳转、调用非纯函数Date.now() 等。

拆分数据处理逻辑combineReducers(),将多个reducer 合并成一个。

Store

store 是它们联系到一起的对象。Store 一下职责:

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

let store = createStore(xxx),创建一个store。

数据流

严格的单向数据流是Redux 架构的设计核心。

猜你喜欢

转载自blog.csdn.net/yana_loo/article/details/80904778