深浅克隆
一、react项目中遇到的问题:
1.描述: 如下图 点击提交,数据有更新但【集装箱号未更新,提交之后还显示在页面】,刷新页面才提交成功

2.问题: 修改集装箱号这里的数据没有深克隆
3.解决: 在修改的时候用深克隆JSON.stringify()
condom[0].innerHTML="<input value="+ JSON.stringify(condom[0].innerText) +" />"
二、我们来谈一下深浅克隆:
1.概念:什么是深克隆,什么是浅克隆呢?【克隆只针对对象、数组、函数等复杂数据】
【浅克隆】修改新变量的值会影响原有的变量的值 就是将栈内存中的引用复制一份,赋给一个新的变量,本质上两个指向堆内存中的同一地址,内容也相同,其中一个变化另一个内容也会变化(根本上改变的是同一个对象)
【深克隆】修改新变量的值不会影响原有变量的值 就是创建一个新的空对象,开辟一块内存,然后将原对象中的数据全部复制过去,完全切断两个对象间的联系。
2.演示 以下深克隆两个方法 (1)JSON.parse(JSON.stringify(obj1)) (2)Object.assign({}, obj)

本文主要讨论了在React项目中遇到的数据提交延迟问题,原因是未使用深克隆。文章解释了深浅克隆的概念,指出浅克隆仅复制引用,而深克隆则创建独立的对象副本。为解决此问题,建议在修改数据时使用JSON.stringify()进行深克隆。此外,文章还探讨了解构赋值在不同情况下的深浅克隆效果,并列举了深浅克隆的应用场景,包括在React中处理不可变数据以及在Vue中更新对象的策略。

585

被折叠的 条评论
为什么被折叠?



