【问题标题】:What's the point of using immutable.js on redux?在 redux 上使用 immutable.js 有什么意义?
【发布时间】:2017-04-06 18:30:01
【问题描述】:

我只是不明白使用 immutable.js 及其方法(set、map 等)有什么好处,因为我们可以像这样在 redux 中设置状态

state = {
            ...state,
            width: 'small'
          };

有什么区别

state.set('width', 'small');

【问题讨论】:

  • 你在比较苹果和橘子。
  • 因为第一个是可变的。
  • 在第一个我可以返回{} 或者如果我觉得它可能{width: 'small'} 或者可能出于某种原因我决定更改数据类型并返回[] 第一个示例是可变的,您可以将其更改为任何内容,如果您输入错误,可能会破坏您的应用程序。
  • 对不起,但我真的认为第一个是不可变的,因为你正在传递整个状态。看过 2 或 3 个视频,教你如何做到这一点
  • 无需抱歉,哈哈!如果你不知道你不知道的区别,很乐意提供帮助:)

标签: reactjs redux immutability immutable.js


【解决方案1】:

在 redux 中使用 immutable 有两个优点:

  1. 开发人员总是犯错误,并且很容易意外地改变减速器中的状态而不是克隆它。该错误会“未被捕获”一段时间,然后在您最不期望的时候袭击您。如果你搞砸了,ImmutableJS 会很快给你一个错误。
  2. 性能:ImmutableJS 利用事物的不可变特性,能够使用能够支持添加/删除/修改等集合操作的数据结构和算法,其空间和时间效率比典型的“复制集合并修改当我们必须自己编写时,我们倾向于这样做。

【讨论】:

  • 3.方便:当您有一个嵌套结构要更改其中的一部分时:.setIn([ 'products', 'productX', 'cost' ], 500) 并且知道 productsproductX 将是新对象,但 productY 不会,无需手动编写该逻辑(回到第 1 点)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-30
  • 2018-05-14
  • 1970-01-01
  • 2017-09-16
  • 2018-10-02
  • 1970-01-01
  • 2016-05-11
相关资源
最近更新 更多