首页 > 技术文章 > vue数组检测更新问题

Mrrabbit 原文

由于 JavaScript 的限制, Vue 不能检测以下变动的数组:

  • 当你利用索引直接设置一个项时,例如: vm.items[indexOfItem] = newValue
  • 当你修改数组的长度时,例如: vm.items.length = newLength

方法一:如官方文档所示

 

  

用法:完成赋值之后,使用上面的那些方法即可,比如:

this.checkedMenu[0]=5;//赋值操作
this.checkedMenu.sort();//使用变异方法

方法二:使用Vue.Set

//Vue.set(实例数组,要修改元素的下标,新值)
//假如data中有一个数组arr
data(){
   return{
        arr:[1,2]
    }
}

//将数组中下标为0的值修改成3
Vue.set(this.arr,0,3)

推荐阅读