【浅谈深浅克隆/深浅拷贝及应用场景】react点击提交 修改后的数据未提交有延迟

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

深浅克隆

一、react项目中遇到的问题:

1.描述: 如下图 点击提交,数据有更新但【集装箱号未更新,提交之后还显示在页面】,刷新页面才提交成功
项目展示图
2.问题: 修改集装箱号这里的数据没有深克隆
3.解决: 在修改的时候用深克隆JSON.stringify()

 condom[0].innerHTML="<input value="+ JSON.stringify(condom[0].innerText) +" />"

二、我们来谈一下深浅克隆:

1.概念:什么是深克隆,什么是浅克隆呢?【克隆只针对对象、数组、函数等复杂数据】
【浅克隆】修改新变量的值会影响原有的变量的值 就是将栈内存中的引用复制一份,赋给一个新的变量,本质上两个指向堆内存中的同一地址,内容也相同,其中一个变化另一个内容也会变化(根本上改变的是同一个对象)
【深克隆】修改新变量的值不会影响原有变量的值 就是创建一个新的空对象,开辟一块内存,然后将原对象中的数据全部复制过去,完全切断两个对象间的联系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值