Vue中使以下方式操作list 是无法让Vue感知到数据的变化,进而无法更新视图
当利用索引直接设置数组项时:
items[index]=newValue
当修改数组的长度是:
items.length=newValue
解决方法:
可采用Vue的set方法和splice方法实现索引赋值的效果,还能够触发视图更新
// Vue.set
Vue.set(example1.items, indexOfItem, newValue)
// Array.prototype.splice`
example1.items.splice(indexOfItem, 1, newValue)
example1.items.splice(newLength)
本人代码中是采用如下写法:
Vue实例中使用this.$set来调用set
this.$set(this.items,index,newValue)
对于方式1中长度的修改
vm.items.splice(newLength)
splice是 删除元素,并向数组添加新元素。
只传入一个参数的newLength,表示删除这个 newLength之后的所有数据,相当于重新设置数据大小了