【问题标题】:Should every object in the store state be immutable?存储状态中的每个对象都应该是不可变的吗?
【发布时间】:2015-09-03 09:04:14
【问题描述】:

我正在学习 React.js 和 Flux,我知道最好保持对象不可变,因为比较它们是 O(1)。

我的情况是这样的:我有一个商店,它有一个_state 对象,这是一张地图(我正在使用 Immutable-js)。 _state 有一些布尔值、一些字符串和一个数组。 数组有对象,都是不可变的映射。

问题是,我应该使用不可变列表而不是数组吗?有什么好处?我不会将数组与另一个数组进行比较。

感谢阅读!

【问题讨论】:

  • "因为比较它们是 O(1)。" - 不,这当然不是使用不变性的理由。
  • @Bergi 我什至不确定它是 O(1),这是我在阅读 React 文档 (facebook.github.io/react/docs/advanced-performance.html) 后假设的。无论如何,廉价的比较是该文档强调的关于不变性的内容。如果您能向我推荐一个参考资料以更好地理解不变性,我将不胜感激。

标签: javascript reactjs immutability flux immutable.js


【解决方案1】:

这取决于对象的设计。如果您要向列表中添加元素并处理返回的新不可变集合,那么您需要不可变列表。否则,请使用更轻量级的数组。

所以更多的是:你需要不可变列表吗?如果没有,请使用数组来减轻重量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 2017-07-15
    • 2020-01-14
    • 2015-02-03
    • 2010-09-25
    • 2014-03-21
    相关资源
    最近更新 更多