Redux 三大原则

Redux 三大原则

七月 21, 2019

Redux 三大原则

#React #Redux


单一数据源

整个应用的state被储存在一棵object tree中,并且这个object tree只存在于唯一一个store中。
这让同构应用开发变得非常容易。来自服务器的state可以在无需编写更多代码的情况下被序列化并注入到客户端中。由于是单一的state tree,调试也变得非常容易。在开发中,可以把应用的state保存在本地,从而加快开发速度。此外,受益于单一的state tree,以前难以实现的如“撤销/重做”这类功能也变得轻而易举。

State是只读的

唯一改变state的方法就是触发::action::,action是一个用于描述已发生事件的普通对象。
这样确保来视图和网络请求都不能直接修改state,相反它们只能表达想要修改的意图。因为所有的修改都被集中化处理,且严格按照一个接一个的顺序执行,因此不用担心race condition的出现。Action就是普通对象而已,因此它们可以被日志打印、序列化、储存、后期调试或测试时回放出来。

使用纯函数来执行修改

为了描述action如何改变state tree,需要编写reducers。
Reducer只是一些纯函数,它接受先前的state和action,并返回新的state。刚开始可以只有一个reducer,随着应用变大,可以把它拆成多个小的reducers,分别独立地操作state tree的不同部分,因为reducer只是函数,可以控制它们被调用的顺序,传入附加数据,甚至编写可复用的reducer来处理一些通用任务,如分页器。

浙ICP备17032786号-2