由於js的限制,vue無法進行監聽數組;
由於 JavaScript 的限制, Vue 不能檢測以下變動的數組:
- 當你利用索引直接設置一個項時,例如:
vm.items[indexOfItem] = newValue
- 當你修改數組的長度時,例如:
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)
|