存储状态中的每个对象都应该是不可变的吗?

Should every object in the store state be immutable?

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

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

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

感谢阅读!

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

所以这更像是一个问题:你需要不可变列表吗?如果不是,请使用数组来减轻重量。