动机
如今用React
或者vue
开发单页应用越来越普遍。当项目越来越大,管理不断变化的state越来越困难。可能散落在各处。需要一个统一的容器来管理各种state
。Redux
是 JavaScript
状态容器。 它和react
和vue
无直接关系。只是刚好两者可以结合起来发挥不错的。
三大原则
Redux 可以用这三个基本原则来描述:
单一数据源
整个应用的 state
被储存在一棵 object tree 中,并且这个 object tree 只存在于唯一一个 store
中
State 是只读的
惟一改变 state 的方法就是触发 action,action 是一个用于描述已发生事件的普通对象。
使用纯函数来执行修改
为了描述 action
如何改变 state
tree ,你需要编写 reducers
。
Reducer
只是一些纯函数,它接收先前的 state
和 action
,并返回新的 state
。刚开始你可以只有一个 reducer
,随着应用变大,你可以把它拆成多个小的 reducers
,分别独立地操作 state
tree 的不同部分,因为 reducer
只是函数,你可以控制它们被调用的顺序,传入附加数据,甚至编写可复用的 reducer
来处理一些通用任务,如分页器。
API 文档
Redux
的 API 非常少。
记住,Redux
只关心如何管理 state
。在实际的项目中,你还需要使用 UI 绑定库如 react-redux
。实际上就是帮你处理了state
变化时的监听
createStore
产生store
combineReducers
把多个小reducers组合成一个reducer
applyMiddleware(...middlewares)
action中间件
bindActionCreators
产生可以不用dispatch的action (感觉用处并不大)
compose
把多个中间件组合在一起
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。