根据In Redux, is it necessary to do deep copy,为了处理嵌套对象的更新,我们应该创建多个浅拷贝,而不是深拷贝。
根据Redux的文件,
如果要正确更新任何连接的组件,Redux对浅相等检查的使用要求不可变。为了了解原因,我们需要理解JavaScript中浅的和深的相等检查之间的区别。
所以我有两个问题。
发布于 2019-04-16 07:34:21
这意味着只需要复制状态的更新部分。如果需要更新state.foo
,应该有选择性的浅拷贝:
{
foo: {...prevState.foo, newValue},
bar
}
不是整个州的一份深刻的副本:
{
foo: {...prevState.foo, newValue},
bar: {...prevState.bar}
}
这样可以获得更好的性能,并允许假设通过浅相等检查的状态的某些部分没有像prevState.bar === newState.bar
那样被更改。
https://stackoverflow.com/questions/55702483
复制相似问题