vue A对象赋值给B对象,修改B属性会影响到A问题

页面中有一个需要修改个人信息,但是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---原始作者)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,156评论 1 32
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,216评论 0 13
  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,665评论 8 265
  • 幸福。 是我们见面时的相视一笑。 是下雨天你递给我的一把伞。 是晴朗夜空里像星光一样璀璨的你的双眼。 是抽屉里藏匿...
    a2c8f9da6aab阅读 202评论 0 0
  • //有多种更简明创建闭包的方法。如果一个闭包类型已知,比如作为一个回调函数,这时可以忽略它的参数类型、或则返回值类...
    冰三尺阅读 812评论 0 0