问题:在同一个页面
this.old=this.new//改变new,old不会随之变-------修改(应该也是会变的,如果是引用类型的话)
含子组件页面
this.old=this.new
<child :new="new" :old="old">//子组件
此时改变new,old也会一起改变,使用深拷贝解决了,this.old=JSON.parse(JSON.stringfy(this.new)),但不知道其中原理是什么
哎想明白了来补一个(重点就是引用类型数据的复制问题)
拷贝对象里存在指针的则为地址拷贝(这里暂时知道对象和数组是地址拷贝),也就是共享内存了,所以拷贝和被拷贝对象任意一个改变数据另一个也会跟着改变,与是否是子组件之间的传值无关
这里old和new是Array类型也就是拷贝地址
因此在不关是否同一个页面的问题,刚看了项目代码,在同一个页面时
我的this.old=this.new
this.new=this.array//new接受了array的地址不再和old共享内存,因此new改变了而old没有
网友评论