Vue 不能检测数组变动解决办法 利用变异方法触发视图更新 阿星小栈

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

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

        为了解决第一类问题,以下两种方式都可以实现和 vm.items[indexOfItem] = newValue 相同的效果,同时也将触发状态更新:


//
Vue.set Vue.set(example1.items, indexOfItem, newValue)

//
Array.prototype.splice example1.items.splice(indexOfItem, 1, newValue)

 

 

      为了解决第二类问题,你可以使用 splice

 

example1.items.splice(newLength)

 

  

 

参考官网:https://cn.vuejs.org/v2/guide/list.html#%E5%8F%98%E5%BC%82%E6%96%B9%E6%B3%95

 

posted @ 2017-12-19 19:34  阿星小栈  阅读(181)  评论(0编辑  收藏  举报