问题描述
在vue页面data中初始化一个对象,后通过代码给对象添加一个属性,后发现数据对象中添加成功并且可以改变 ,但页面没有进行更新。
原因所在
解决方式:
一、利用Vue.set(object,key,val)
例如:Vue.set(vm.obj,'k1','v1')
二、利用this.$set(this.obj,key,val),这是Vue.set()的全局实例
例如:this.$set(this.obj,'k1','v1')
三、利用Object.assign({},this.obj)创建新对象
例如:
this.obj.k1='v1';
this.obj = Object.assign({}, this.obj)
// 或者下面这种
this.obj = Object.assign({}, this.obj,{'k1','v1'})
this.someObject = Object.assign({},this.someObject,{newProperty1:1,newProperty2:2 ...})
四、也可以使用$forceUpdate()进行强制刷新,但是 不建议这种方式