Redux

作者: 守心向暖 | 来源:发表于2017-08-31 17:15 被阅读0次

    参考链接:https://www.ibm.com/developerworks/cn/web/wa-manage-state-with-redux-p1-david-geary/

    应用程序状态通常很复杂,Redux Javascript库是一个可以减少状态维护过程中的错误针对Javascript应用程序的可预测状态容器。

    Redux来自React社区,是Facebook的Flux架构的一种简化实现,但是它并不依赖React,也就是除了React还可以用于其他框架。

    Redux来源于Reducer + flux。Flux本质上采用了MVC结构,引入了很高的复杂性,但Redux借用了Elm[一个基于不可变数据结构和纯函数的强大反应式函数编程语言。]的缩减程序Reducer的概念降低了Flux的复杂性。纯函数是没有副作用的函数,Redux缩减程序是计算应用程序状态的纯函数。

    Redux的3条原则:
    - 应用程序状态存储在单个对象中。
    - 应用程序状态不可变,只能通过描述状态更改的操作彻底替换。
    - 缩减程序根据当前状态和某个操作来创建下一个状态。

    • 应用程序状态存储在单个对象中
      Redux通过一个Javascript对象管理状态,这个对象称为数据存储,包含了应用程序的所有状态。
      优点:

      1. 状态集保存在一个对象中,使得在阅读代码时推断应用程序数据变的更容易。
      2. 所有数据在一个位置,更容易调试和测试应用程序。
      3. 应用程序状态存储在一个对象中,更容易持久保存应用程序的整体状态。
    • 应用程序状态不可变
      使用Redux,修改应用程序状态是不被允许的,只能在需要时,通过操作[不可变的Javascript对象,用于描述状态更改]使用新状态替换现有状态。

    尽管封装状态更改时使用了模式,但封装状态更改远不止使用模式那么简单,所以最好连同引用一起删除。
    优点:能够实现无限撤销和重做[类似于时光机]。操作也是按照严格的顺序执行,所以不会发生竞争条件。

    • 缩减程序创建一种新状态
      缩减程序是纯Javascript函数:
      1. 根据当前状态和某个操作创建一个新状态
      2. 集中数据变化
      3. 可处理所有或部分状态
      4. 可组合和重用

    Redux的可预测状态容器:给定任何状态和任何操作,可以肯定的预测应用程序的下一个状态,使无限撤销/重做和实时编辑得以实现。

    Redux三部分:操作[action]、缩减程序[reducer]和存储[store]

    每个Redux应用程序仅有一个存储,每个存储仅有一个缩减程序。

    相关文章

      网友评论

          本文标题:Redux

          本文链接:https://www.haomeiwen.com/subject/szyqjxtx.html