一、什么是redux
Redux
是一个JavaScript
容器,用于进行状态化管理。Redux
除了和React一起使用还支持其它界面库,并且它的体积只有2kb左右
Redux三大核心
- 单一数据源
- 整个应用的
state
被储存在一棵 object tree 中,并且这个 object tree 只存在于唯一一个store
中。
- 整个应用的
- State 是只读的
- 唯一改变 state 的方法就是触发
action
,action 是一个用于描述已发生事件的普通对象。
- 唯一改变 state 的方法就是触发
- 使用纯函数来执行修改
- 为了描述 action 如何改变 state tree ,你需要编写
reducers
。
- 为了描述 action 如何改变 state tree ,你需要编写
Redux组成
-
State状态
- 服务器返回的state、ui state、全局的state
-
action事件
- 本质上是一个js对象
- 需要包含type属性
- 描述了有事情要发生,并没有描述如何去更新state
-
reducer
- 本质上就函数
- 响应发送过来的action
- 函数接收两个参数、第一个是初始化state、第二个是发送过来的action
- 必须有return返回值
-
Store
- 维持应用的state(状态)(服务器返回的state、ui state、全局的state)
- 提供getstate方法读取state
- 用来把action和reducer关联到一起的
- 通过createStore来构建store
- 通过通过subscribe来注册监听
- dispatch方法发送action