在vue中修改数据,但是vue没有检测数据修改,视图数据未能更新的情况
- 使用index索引修改数据时,this.array[index].attributeName = newValue
- 视图修改数组长度,this.array.length = newLength
vue能监测到的数据更新方法,包括(前7个方法会改变原数组)
- push() ----向数组末尾添加一个或者多个元素,并返回新的长度
- pop() ----删除数组的最后一个元素,把数组的长度减1,并返回被删除元素的值
- unshift() ----向数组的开头添加一个或多个元素,并返回新的长度
- shift() ----数组的第一个元素从其中删除,并返回被删除的值
- splice() ----从数组中添加/删除项目,然后返回被删除的项目
- sort() ----对数组的元素进行排序
- reverse() ----对数组的元素进行倒序排序
- filter(), concat(), slice() 。这些不会改变原始数组,但总是返回一个新数组。当使用非变异方法时,可以用新数组替换旧数组
- Vue2.0新增的Vue.set( target, key, value )方法监测更新视图数据
视图数据无法更新的解决方案
// 数组操作, 更新整个数组
this.intershipList.splice(this.intershipList, 0)
// Vue.set( target, key, value),更新数组某项数据
Vue.set(this.intershipList, index, newValue])