vue 重塑數組之修改數組指定index的值操作
如下所示:
vm.items[indexOfItem] = newValue
vue不能檢測數組的變動
想要實現可以使用vue的set方法
this.$set(this.items,indexOfItem,newValue);
補充知識:vue中利用索引直接設置一個數組項,不能觸發視圖更新的問題
由于 JavaScript 的限制,Vue 不能檢測以下數組的變動:
1、當你利用索引直接設置一個數組項時,例如:vm.items[indexOfItem] = newValue
2、當你修改數組的長度時,例如:vm.items.length = newLength
舉個例子:
var vm = new Vue({ data: { items: [’a’, ’b’, ’c’] }})vm.items[1] = ’x’ // 不是響應性的vm.items.length = 2 // 不是響應性的
為了解決第一類問題,以下兩種方式都可以實現和 vm.items[indexOfItem] = newValue 相同的效果,同時也將在響應式系統內觸發狀態更新:
// Vue.set
Vue.set(vm.items, indexOfItem, newValue)
// Array.prototype.splice
vm.items.splice(indexOfItem, 1, newValue)
你也可以使用 vm.$set 實例方法,該方法是全局方法 Vue.set 的一個別名:
vm.$set(vm.items, indexOfItem, newValue)
為了解決第二類問題,你可以使用 splice:
vm.items.splice(newLength)
以上這篇vue 重塑數組之修改數組指定index的值操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。
相關文章: