Javascript 存储状态中的每个对象都应该是不可变的吗?
我正在学习React.js和Flux,我知道最好保持对象不变,因为比较它们是O(1) 我的情况是:我有一个存储,它有一个Javascript 存储状态中的每个对象都应该是不可变的吗?,javascript,reactjs,immutability,flux,immutable.js,Javascript,Reactjs,Immutability,Flux,Immutable.js,我正在学习React.js和Flux,我知道最好保持对象不变,因为比较它们是O(1) 我的情况是:我有一个存储,它有一个\u state对象,这是一个映射(我使用的是不可变的js)。那个\u state有一些布尔值、一些字符串和一个数组。 数组有对象,它们都是不可变的映射 问题是,我应该使用不可变列表而不是数组吗?好处是什么?我不会将这个数组与另一个数组进行比较 谢谢你的阅读 这取决于对象的设计。如果要向列表中添加元素并处理返回的新不可变集合,则需要不可变列表。否则,请使用重量较轻的阵列 所以这
\u state
对象,这是一个映射(我使用的是不可变的js)。那个\u state
有一些布尔值、一些字符串和一个数组。
数组有对象,它们都是不可变的映射
问题是,我应该使用不可变列表而不是数组吗?好处是什么?我不会将这个数组与另一个数组进行比较
谢谢你的阅读 这取决于对象的设计。如果要向列表中添加元素并处理返回的新不可变集合,则需要不可变列表。否则,请使用重量较轻的阵列
所以这更多的是一个问题:你是否需要不可变的列表;如果不是,则使用数组来减轻重量。“因为比较它们是O(1)。”-不,这当然不是使用不变性的原因。@Bergi我甚至不确定它是否是O(1),这是我在阅读React文档()后的假设。无论如何,docs强调的是不变性,这是一个廉价的比较。如果您能给我推荐一份更好地理解不变性的参考资料,我将不胜感激。