Redux最主要是用作应用状态的管理。简言之,Redux用一个单独的常量状态树 (state对象)保存这一整个应用的状态,这个对象不能直接被改变。当一些数据变化了, 一个新的对象就会被创建(使用actions和reducers),这样就可以进行数据追踪,实现时 光旅行。

redux 是什么

  • redux 是一个 JavaScript 容器,用于进行全局的状态管理
  • redux 可以让你构建一致化的应用,运行于不同环境,并且易于测试
  • redux 除了和 react 一起使用,还支持其他的 js 库(vue 、jQuery、JavaScript 等),而且它体积精悍(只有2kb)

redux介绍及设计和使用的三大原则

  1. state以单一对象储存在store对象中
  2. state只读(每次都返回一个新的对象)
  3. 使用纯函数reducer执行state更新

redux工作流

React中的redux

redux 组成

  • state 状态

    • 服务器返回的 state
    • 当前组件的 state
    • 全局的 state
  • action 事件

    • 本质是一个 js 对象
    • 必须包含 type 属性
    • 只是描述了有事情要发生,并没有描述如何去更新 state
  • reducer

    • 本质就是一个函数
    • 响应发送过来的 action
    • 函数接收两个参数,第一个参数是初始化 state,第二个参数是发送过来的 action
    • state 不能直接修改,需要先进行深复制
    • 必须要有 return 返回值,返回值就是新的 state
  • store 仓库对象

    • 用来把 action 和 reducer 关联到一起的
    • 通过 createStore 来构建 store 仓库
    • 通过 subscribe 来注册监听
    • subscribe 监听的返回值就是这个监听的解绑函数
    • 通过 dispatch 来发送 action

注意:组件销毁时,必须要去取消 subscribe 监听

利用发布订阅模式实现简易redux

store 用于存储应用数据,表达应用状态(store的结构都是树状结构)

subsribe 订阅方法

dispatch 发布方法

有以下职责:
1、维持应用的state
2、提供getState()方法获取state
3、提供dispatch()方法更新state
4、通过subscribe()注册监听器
5、通过subscribe()返回的函数注销监听器

Redux 应用只有一个单一的 store
更多知识

相关文章: