原因:
由于 JavaScript 的限制,Vue 不能检测以下变动的数组:
- 当你利用索引直接设置一个项时,例如:
vm.items[indexOfItem] = newValue
- 当你修改数组的长度时,例如:
vm.items.length = newLength
解决方案:
通过splice()方法,删除某个元素后,再添加一个元素,达到“赋值”的效果:
vm.items.splice(index, 1, newElement);
Vue可以监听数组的splice、push、unshift等方法调用正确更新View。
this.$set(this.arr,”key”, 111)
Vue.set( target , key , value)
- target: 要更改的数据源(可以是一个对象或者数组)
- key 要更改的具体数据 (索引)
- value 重新赋的值
或者
this.$forceUpdate() //强制刷新