背景:点击列表某一项编辑,打开编辑弹窗,列表数据传递给弹窗组件,编辑该项内容,弹窗编辑的时候后面列表的数据也会跟着变
原因:当列表项传递数据给弹窗时,传递的是对象是一个复杂的数据类型,复杂数据直接赋值是赋值的引用,b=a相当于 b和a指向了统一内存,改变a,b也跟着变了,所以要多开辟一个内存,只是两个内存里的值一样
this.a={…this.b}
方式一原理:把复杂类型先转成字符串 字符串复制没有引用问题 然后再转过来(深度克隆,把值复制过去 不复制引用,相当于拷贝一份一样的值 但是值没联系)
方式二原理:es6解构赋值写法(把复杂类型的对象里的属性是简单类型的 一个个复制属性过去)如果对象里只有简单类型 没有复杂类型用解构赋值即可
vue编辑弹窗,列表数据也会跟着变
于 2022-07-07 16:53:55 首次发布