一、简述
1.定义:Redux是JavaScript状态容器,提供可预测化的状态管理。
2.设计动机:
解决,当JavaScript需要存储大量state时,管理state困难的问题。
3.要点:
(1)应用中所有的 state 都以一个对象树的形式储存在一个单一的 store 中。
(2)唯一改变 state 的办法是触发 action(使用dispatch),一个描述发生什么的对象。
(3)为了描述 action 如何改变 state 树,你需要编写 reducers。
4.理解三个角色:
(1)store:存储所有state的一个对象
(2)reducer:接收state、action的纯函数,返回新的state。描述不同的action如何改变state
(3)action:一个对象,描述我们要对state做哪种修改。通过dispatch发送,reducer就能拿到这个对象
【注】Redux只有一个单一的 store 和一个根级的 reduce 函数(reducer)
5.reducer的实际使用:
为了把 action 和 state 串起来,开发一些函数,这就是 reducer。
reducer 只是一个接收 state 和 action,并返回新的 state 的函数。
对于大的应用来说,我们编写很多小函数来分别管理 state 的一部分。之后再开发一个 reducer 调用这两个 reducer,进而来管理整个应用的 state。
6.进一步理解执行逻辑(个人理解):
通常,在actions.js中,执行dispatch,就是触发store中state更改的过程。
二、三大原则
1.单一数据源
整个应用的 state 被储存在一棵 object tree 中,并且这个 object tree 只存在于唯一一个 store 中。
2.state是只读的
唯一改变 state 的方法就是触发 action,action 是一个用于描述已发生事件的普通对象。
3.使用纯函数来执行修改(reducers是纯函数)
为了描述 action 如何改变 state tree ,你需要编写 reducers。
eg:
网友评论