问题:通过表单获取表格的某一行的数据,修改数据的时候表格的数据也会跟着表单的数据变化,即使你取消表格数据还是变化了。
handleEdit(row) {
this.form = row
}
但是我表单数据和表格数据不是同一个对象,而且输入框通过v-model取值,表格通过prop传值也是固定写法,也没有写事件调接口等。
原来整个表格数据是一个数组,数组的每一行是一个对象,row是Object对象,直接赋值是浅拷贝,复制的就是它的地址。
这涉及到Javascript数据类型的知识,Javascript有两种数据类型,基本类型是存放在栈内存里的,值不可变,基本类型的比较是它们的值的比较。引用类型的值是保存在堆内存中的对象,按照引用访问,值是可变的,引用类型的比较是引用的比较。
因此,想要进行深拷贝我们可以使用操作JSON的方法来解决引用问题。
this.form = JSON.parse(JSON.stringify(row))