vue数组下标更新不能更新视图

vue中如果使用下标更新数组,是不能成功的,需要使用set方法更新,但是用下标更新数组中的某个具体变量又是可以更新的
this.list[0]={mes:10}//不能更新视图
this.list[0].mes = 10//可以更新
这是为什么呢

阅读 4.9k
4 个回答

对象中的属性都是可以监听的;数组的一些方法都被重写了的,唯独数组的下标没法做监听

改数组中的对象,在vue中并不是响应式的,如果你要响应在视图上,就使用Vue.set()或者vm.$set()(vm是实例名),
以你的为例:

this.$set(this.list,0,{mes:10});//数组,下标,值

vue set

let obj = {mes:10}
this.list.splice(0,1,obj)

推荐问题