【vue开发】Object.defineproperty无法监听到新增的对象属性

vue

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

回到顶部