现象描述:
vue 在使用的时候,当table绑定了某个data的时候.假如某个el-table-column下面的
有个方法传参(data.row),然后在方法中用一个obj=data.row.(这里是浅拷贝).如果在这个方法中把这个参数给了另一个v-model的数据,操作令一个元素的时候会同步更改table中的传参的那一行的数据.这种传参方式是浅拷贝,多个地址指向同一个堆,所有两方会一起修改.
原因:
1.vue的双向绑定,数据更改同时更改视觉展示
2.函数的形参和实参的传递方式是浅拷贝.
解决方案:
1.传递实参的时候,先深拷贝一个数据,再传给函数.
2.形参接收实参的时候不用"=",而是将形参深拷贝一份.再操作拷贝的那份.
深拷贝的方式:
1.先JSON.stringify()
和 再JSON.parse()
2.for....in获取所有属性以及值,并且给另一个对象(以及其他遍历属性的方法).
3.object.assign()方式直接返回一个新对象