(一个简短的Redux笔记)
Redux 是什么?
- Redux 是 JavaScript 的状态管理容器
- 可以用来提供可预测化的状态管理,重点是状态管理
核心概念
- Store
Store 是存储数据的容器,函数
createStore可以用来生成store,createStore 接受一个函数作为参数,返回新生成的 store - Action
- Action 是一个对象,有一个必须的属性
type,表示 Action 的名称; - Action描述当前事件,是 改变 state 的唯一办法;
- View 发出 Action 之后,数据被运送到了 state 然后 state就会发生变化。
- Reducer
- Reducer 是一个函数,接受 Action 和当前 state 为参数,然后返回新的 state。
- store 收到 action 后,给出新的 state,从而 view 被改变,这一整个过程,叫做 reducer (也可以理解为state计算过程)
API:
store.getState()- 通过store.getState() 可以得到当前时刻的 state。state 是某个时间点的数据的集合。
store.dispatch(action)- 是 view 发出 action 的唯一方法。store.dispatch接受一个action对象,将他发出去。
其他概念:
-
Action Creator 定义一个函数来生成 Action,这个函数就叫做 Action Creator
-
纯函数
- 参数不变,不调用系统的I/O API;
- 同样的input得到的output一定相同;
- Reducer就是一个纯函数
store.subscribe()
- 用于设置监听,state 变化时自动执行
- Redux Flow
- Redux 和 React-Redux 的区别
- Redux 是用于状态管理的 JavaScript 库(不仅限于管理 React,还可以管理 Angular等);
- React-Redux 是Readux的官方React绑定库,能使React组件从Redux store 读取数据,向store分发actions以更新数据。