vue 數組渲染問題vue
問題一: 用v-for循環渲染數組數據時,數據更新了,視圖卻沒有更新數組
因爲 JavaScript 的限制, Vue 不能檢測如下變更的數組:
1. 當你利用索引直接設置一個項時,例如: vm.items[indexOfItem] = newValue
2. 當你修改數組的長度時,例如: vm.items.length = newLengthspa
解決方法:prototype
爲了不第一種狀況,如下兩種方式將達到像 vm.items[indexOfItem] = newValue 的效果, 同時也將觸發狀態更新:blog
// Vue.set Vue.set(example1.items, indexOfItem, newValue) (數組, 索引, 值) // Array.prototype.splice` example1.items.splice(indexOfItem, 1, newValue) (索引, 長度, 值)
避免第二種狀況,使用 splice:索引
example1.items.splice(newLength)