解决vue中对象属性改变视图不更新的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43056561/article/details/82626374

常规情况下我们在vue实例的data中设置响应数据。但当数据为对象,我们增加或删除对象属性值时,视图并不触发更新.

vue的文档里说的很清楚,这些会触发更新
这里写图片描述

但是:
1.当你利用索引直接设置一个项时
2.当你修改数组的长度时
都不会触发视图更新

这里写图片描述
现在你可以用下面的方法设置
方案一:利用Vue.set(object,key,val)
例:Vue.set(vm.obj,‘k1’,‘v1’)
方案二:利用this.set(this.obj,key,val)this.set(this.obj,key,val) 例:this.set(this.obj,‘k1’,‘v1’)

如果上面的方法都不行的话:
方案三:就利用Object.assign({},this.obj)创建新对象
如果是数组 就Object.assign([],this.obj)

     this.obj.k1='v1';
     this.obj = Object.assign({}, this.obj)
 或
     this.obj = Object.assign({}, this.obj,{'k1','v1'})
展开阅读全文

没有更多推荐了,返回首页