【vue开发】Object.defineproperty无法监听到新增的对象属性
vue2中使用中我们也会遇到这样的问题
# template<p @click="adda(obj)">{{ obj.a }}</p>
<p @click="addb(obj)">{{ obj.b }}</p>
# srcript
data () {
return {
obj:{
a:1
}
}
},
mounted () {
this.obj.b = 1;
},
methods: {
addb(item){
item.b += 1;
console.log(this.obj.b)
},
adda(item){
item.a += 1;
}
}
我们发现点击obj.a是响应式, 页面也会更新
而新增的obj.b点击则不会
因为vue2使用的Object.defineproperty无法监听到新增的对象属性
针对这个问题vue2提供了$set方法来解决
mounted () {this.$set(this.obj, "b", 1)
}
以上是 【vue开发】Object.defineproperty无法监听到新增的对象属性 的全部内容, 来源链接: utcz.com/z/378843.html