今天在写vue代码时犯了个非常低级的错误,大概是这样:
<div v-show="obj.a"><div>
new Vue({
data: {
obj: {}
},
created: function() {
obj.a = false
}
})
我企图想之后再绑定a属性,多么愚蠢!!!
几天后我有了新发现,vue有两种方法添加响应式属性,可以用$set(this.obj, 'flag', true)这个方法来动态添加响应式属性,也可以把原属性和新属性合并到新的对象中this.obj=Object.assign({}, this.obj. {flag: true})代码改成这样就行了:
<div v-show="obj.a"><div>
new Vue({
data: {
obj: {}
},
created: function() {
this.$set(this.obj, 'flag', true)
}
})