描述:如果在实例创建之后添加新的属性到实例上,它不会触发视图更新
简单的讲就是:在页面渲染完成之后,对data里的某个数组或对象进行新增删除属性操作是监听不到的,视图不会更新
<div id='app'>
<el-button @click="setinfo">新增属性</el-button>
<div v-for="item in info">{{item}}</div>
</div>
data: {
info: {
id: 1,
name: '老王',
}
},
setinfo() {
let that = this
that.info.age = 11
console.log(that.info)
},
可以看到点击按钮之后,打印出的数据中有age,但是视图没更新
正确的应该是使用this.$set
setinfo() {
let that = this
that.$set(that.info,'age','11')
console.log(that.info)
}
this.$set(target, key, value)
target: 要更改的数据源(可以是一个对象或者数组)
key: 要更改的具体数据(索引)
value: 新增的值
删除属性可以使用this.$delete(target,key)
this.$delete(that.info,"name")
版权声明:本文为hu104160112原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。