Redux最主要是用作应用状态的管理。简言之,Redux用一个单独的常量状态树 (state对象)保存这一整个应用的状态,这个对象不能直接被改变。当一些数据变化了, 一个新的对象就会被创建(使用actions和reducers),这样就可以进行数据追踪,实现时 光旅行。
redux 是什么
- redux 是一个 JavaScript 容器,用于进行全局的状态管理
- redux 可以让你构建一致化的应用,运行于不同环境,并且易于测试
- redux 除了和 react 一起使用,还支持其他的 js 库(vue 、jQuery、JavaScript 等),而且它体积精悍(只有2kb)
redux介绍及设计和使用的三大原则
- state以单一对象储存在store对象中
- state只读(每次都返回一个新的对象)
- 使用纯函数reducer执行state更新
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。
更多知识