如何理解redux的三大原则
redux 遵循的三大原则
- 单一数据源
- state 只读
- 使用纯函数修改state
redux规定这三大原则有什么深层好处,为什么必须这样?
- Redux状态管理也是借鉴Flux,都是采用发布订阅的设计原则将状态抽离,并遵循统一管理状态规则。Redux又遵守函数式编程,整个react也遵守数据不可变的函数式原则
- 为什么是单一数据源,主要是为了解决Flux多个Store带来Store之间依赖问题,多个Store内部又要管理自己的依赖逻辑。Redux的Store都被存储在一个单一对象树中,使得状态之间更好管理,更容易调试,以及一些撤销/重做的功能更容易。
- state只读也是借鉴了Flux的单向数据流的原则,通过state的改变只能通过action发出再经过reducer处理返回新的state,这样好处是为了数据更容易追踪,问题容易定位。Store可以通过拆分多个reducer来管理。
- 通过纯函数Reducer来修改状态,这个是借鉴了函数式编程,reduce也是函数式编程的一个概念,叫做归纳,通过一定规则合并成一个新的值,比如数组中的reduce方法。纯函数的好处是没有副作用,相同的输入,永远都会有相同的输出。这样做的好处是这个函数可以不依赖外部环境,更加解耦,更容易调试以及更容易的写单元测试