现在用React
或者vue
开发单页应用愈来愈广泛。当项目愈来愈大,管理不断变化的state愈来愈困难。可能散落在各处。须要一个统一的容器来管理各类state
。Redux
是 JavaScript
状态容器。 它和react
和vue
无直接关系。只是恰好二者能够结合起来发挥不错的。vue
Redux 能够用这三个基本原则来描述:react
整个应用的 state
被储存在一棵 object tree 中,而且这个 object tree 只存在于惟一一个 store
中redux
唯一改变 state 的方法就是触发 action,action 是一个用于描述已发生事件的普通对象。app
为了描述 action
如何改变 state
tree ,你须要编写 reducers
。函数
Reducer
只是一些纯函数,它接收先前的 state
和 action
,并返回新的 state
。刚开始你能够只有一个 reducer
,随着应用变大,你能够把它拆成多个小的 reducers
,分别独立地操做 state
tree 的不一样部分,由于 reducer
只是函数,你能够控制它们被调用的顺序,传入附加数据,甚至编写可复用的 reducer
来处理一些通用任务,如分页器。spa
Redux
的 API 很是少。code
记住,Redux
只关心如何管理 state
。在实际的项目中,你还须要使用 UI 绑定库如 react-redux
。实际上就是帮你处理了state
变化时的监听中间件
产生store
对象
把多个小reducers组合成一个reducer事件
action中间件
产生能够不用dispatch的action (感受用处并不大)
把多个中间件组合在一块儿