React状态管理 | 青训营笔记

105 阅读2分钟

这是我参加前端训练营笔记活动的第12天。

React状态管理(书接上回)

React状态管理简介

Redux

前面讲到props和context,以及它们的优缺点。在讲React状态管理工具的时候,最经典的要属Redux了。
Redux是由Flux演变而来的,Flux它是Facebook官方给出的应用架构,利用数据的单向流动的形式对公共状态进行管理,不过现在已经被淘汰了,不过其设计思想还是可以参考和借鉴的。

Flux

Flux利用数据的单向流动的形式对公共状态进行管理。
view:视图层
action:视图发出的消息
dispatcher:派发者,用于接收action,执行回调函数
store:数据层,存放状态,一旦发生改动,就会更新数据以及emit相关事件等等

Flux的缺点:
1、UI组件和容器组件的拆分过于复杂
2、action和dispatcher绑定在一起
3、不支持多个store
4、store被频繁地引入和调用

Redux的三大原则

1、单一数据源

在redux中,整个应用的全局State,都会保存在一个store中,一个单一数据源state tree也简化了应用的调试和监控。它也让你在开发中能将应用数据持久化到本地,从而加速开发周期。此外,有一些功能以前很难实现,比如“撤销/重做”,在单一数据源的原则下,使用Redux实现将非常容易。

2、store中的state是只读的

我们不能直接修改store中的state,store中的state是只读的。唯一能改变store中的state的方式就是通过action

3、使用纯函数来执行修改

接受纯函数来接受action,该纯函数叫reducer,可以改变store中的state

总结

因为Redux的上述三大特性,使得Redux可以做时间旅行。因此,如果复杂的场景,特别是存在页面组件间复杂的通信的场景非常适合用Redux来管理状态。