使用react a进行开发时深度复制对象是否必须练习? 或者像Object.assign()这样的浅层复制方法是否足够?
答案 0 :(得分:0)
实际上首选浅拷贝,因为它表示某些属性值没有改变。
答案 1 :(得分:0)
Object.assign将仅为一个级别创建创建深层副本。它创建了它的孩子的浅拷贝。使用嵌套组件时,使用浅拷贝和传递引用是有问题的。
回答您的问题,建议使用深层复制而不是Object.assign,就好像您将任何属性作为子组件的对象传递一样,此子对象中的更改将不会反映到子组件,因为它很浅复制。在某些情况下,浅拷贝不会触发变化检测。
最好的方法是使用immutable模式。
答案 2 :(得分:0)
React不强制/推荐任何一种方法。反应并不在乎。您的数据流架构通常决定了您的州应该如何对待。即Redux大力倡导通常使用immutableJS实现的不可变数据结构。通常,建议使用不可变数据结构,因为它们是多线程安全的并且通过意外更新来消除错误。但反应自己不关心它。在这个特定的一个可以是反应,角度,vue或下一个不可变结构将始终更清洁和更安全使用,并应该使用,如果您的架构允许它