set 有三个参数 target,key,value
target :要么是对象,要么是数组,包含对象的数组都可以,
key :如果是对象的情况下,这个key就是键名,他是一个字符,要加 ‘ ’ ,如果是数组的话,就是他的索引,
value :是我们想改变的值。
如果用索引直接赋值 vue 是检测不到的,
数组的情况
<script>
export default {
data(){
return{
names:['小红','小明','小亮'],
}
},
methods:{
upd(){
//this.names[1] = '小土豆'
this.$set(this.names,1,'小土豆')
}
}
}
</script>
this.$set(this.names,1,'小土豆')
this.names 指的是 names 这个数组,1 是索引,'小土豆' 是要该不安的内容。
对象的情况
<script>
export default {
data(){
return{
list:[
{ name:'小红1' },
{ name:'小明1' },
{ name:'小亮1' }
]
}
},
methods:{
upd(){
//this.names[1] = '小土豆'
this.$set(this.list[1],'name','小土豆')
}
}
}
</script>
this.$set(this.list[1],'name','小土豆')
this.list[1]指的是要修改的第二个对象,'name'是一个字符,一定要加 '' ,,'小土豆'是要修改的内容。