页面中有一个需要修改个人信息,但是vue里面的v-model是双向绑定,在我修改的时候,原始的引用该数据的地方也会随之更改,但其实这时候还未提交数据库,如果用户修改一半,点击取消,会存在页面修改过来,但是数据库没更新,刷新之后又恢复原来的值。
思路:用一个中间对象过渡一下,所以命名一个新的对象,这个对象和原始的个人信息是一样的内容,只是名字不一样,但是我在赋值之后发现,修改中间对象的属性值,原始对象也会更改,原来是vue的对象赋值,this.A = this.B,没有进行深层赋值,只是把this.A的地址指向了与this.B相同的地址,所有对于A的修改会影响到B。
解决:解决相互影响的思路是在this.A必须是新建的一个对象,这样才能保证不被指向同一地址,属性修改不会相互影响。
解决方式: this.A=JSON.parse(JSON.stringify(this.B));
将对象转成字符串剔除对象属性后,再转换成对象赋值,这样能解决指向相同地址修改会相互影响的问题。
(引用https://blog.csdn.net/Yahets_Lee/article/details/80755347---原始作者)