<div>
<ul>
<li v-for="(item,inx) in obj" :key="inx">{{item}}</li>
</ul>
<div @click="addBtn">添加属性</div>
</div>
data() {
return {
obj:{
name:'小兰'
}
};
},
methods: {
addBtn(){
this.obj.age=18
console.log(this.obj)
},
obj.age 已经成功添加,但是视图并未刷新:
原因在于在Vue实例创建时, obj.age 并未声明,因此就没有被Vue转换为响应式的属性,通过使用$set()方法来转换响应式的属性
addBtn(){
this.$set(this.obj,'age',18)
console.log(this.obj)
}