1. 程式人生 > 程式設計 >vue 重塑陣列之修改陣列指定index的值操作

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,newValue)

// Array.prototype.splice

vm.items.splice(indexOfItem,1,newValue)

你也可以使用 vm.$set 例項方法,該方法是全域性方法 Vue.set 的一個別名:

vm.$set(vm.items,newValue)

為了解決第二類問題,你可以使用 splice:

vm.items.splice(newLength)

以上這篇vue 重塑陣列之修改陣列指定index的值操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。