动机

处理state中的数据问题,试图让state的变化变得可预测

核心概念

state:是一个普通对象,用来描述应用的状态,类似于一个模型,但是没有setter方法,不能直接改变它

action:是一个普通js对象,要改变state需要发起一个action,用来描述发生了什么

reducer:串联state和action的函数,接受旧state和action,返回一个新的state

三大原则

单一数据源

整个应用的 state 被储存在一棵 object tree 中,并且这个 object tree 只存在于唯一一个 store 中。

State 是只读的

惟一改变 state 的方法就是触发 action,action 是一个用于描述已发生事件的普通对象。

使用纯函数来执行修改

为了描述 action 如何改变 state tree ,你需要编写 reducers