在 vue 2 中監聽數組的變化,有兩種方法:使用 vue.set() 方法,用于設置數組中某個索引的值。使用 array.prototype 中的變異方法,如 push()、pop() 等。但要注意,數組中的對象是通過引用傳遞的,修改對象屬性不會觸發更新。
Vue 2 中監聽數組
在 Vue 2 中,監聽數組的變化可以通過 Vue.set() 方法和 Array.prototype 中的變異方法來實現。
Vue.set() 方法
Vue.set() 方法用于設置數組中的某個索引的值。當使用該方法時,Vue 會自動檢測到數組的變化并觸發相應的更新。例如:
const app = new Vue({ data() { return { array: [1, 2, 3] } } }); app.array[0] = 4; // 直接修改數組不會觸發更新 Vue.set(app.array, 0, 4); // 使用 Vue.set() 可以觸發更新
登錄后復制
Array.prototype 中的變異方法
Array.prototype 中的變異方法也會觸發 Vue 的響應式更新,包括:
push()
pop()
shift()
unshift()
splice()
reverse()
sort()
例如:
const app = new Vue({ data() { return { array: [1, 2, 3] } } }); app.array.push(4); // 觸發更新
登錄后復制
需要注意的是,數組中的對象是通過引用而不是值傳遞的。因此,修改數組中的對象的屬性不會觸發更新。要監聽對象的更改,必須使用 Vuex 或其他狀態管理庫。