与 Flux 有何不同

在 Redux 中主要有三种内容参与全局 State 的管理:Store、Action 和 Reducer。简而言之,应用中所有的 State 都以一个对象树的形式保存在单一 Store 中,想要改变 State 只能通过触发用于描述发生何种事件的 Action 对象,而 Reducer 则是描述 Action 事件如何去改变 State 树。State 的更新遵循(state, action) => state原则。

Redux 与 Flux 的主要区别就是 Redux 是假设你永远不会改变你的数据,即便是使用 Reducer,也只是返回一个新的对象,并不是在原有对象的基础上进行修改。如果搭配 Immutable 等支持数据不可变性的功能库会对这个特性产生更加深刻的理解。此外,Redux 还可以搭配 RxJS 来实现响应式的 State 处理。