由于 JavaScript 语言本身的限制,Vue.js 无法监测数组的下列变化:
- 直接通过索引值改变元素:
vm.items[0] = {}
- 通过 length 属性改变数组:
vm.items.length = 0
如果监测不到数组变化,也就无法及时更新对应的视图。为了解决第一种问题,Vue.js 给数组增加了 $set()
方法:
example1.items.$set(0, { childMsg: ‘Changed!' })
为了应对第二种问题,只需用空数组替换原始数组即可。