应用场景
官网:向响应式对象中添加一个属性,并确保这个新属性同样是响应式的,且触发视图更新
当给对象添加一个属性,控制台可打印出来,但未更新到视图时使用
// 1.template标签的代码
<div v-for="(item,index) in list" :key=index>
{{item.name}}
</div>
<el-button @click="changValue" type="primary">我变了</el-button>
// 2.export default中data数据
list:[
{
name:'老大', id:1
},
{
name:'老二', id:2
}
],
// 3.点击按钮触发方法:调用this.$set(target,key,value)其中target要更改的数据源(对象或数组),key要更改的具体数据,value重新赋的值
mounted() {
this.list[2] = {name:'我是新加入的老三',id:3} // 此时已重新赋值
console.log(this.list[2]) // 控制台已经可以打印出来了
},
methods: {
changValue(){
this.$set(this.list,2,{name:'我是新加入的老三',id:3}) // this.$set方法把更改的数据更新视图
},
}
4.点击前可打印页面未显示,点击后页面显示