vue 2.x 提供了以下方法監聽數組變化:1. v-for 指令;2. vue.set() 方法;3. .push()、.pop() 和 .splice() 方法;4. $watch() 方法(需設置 deep 選項為 true 以啟用深度監視)。
Vue 2.x 中監聽數組變化的方法
Vue.js 中提供了幾種方法監聽數組變化:
1. 使用 v-for 指令
v-for 指令會自動跟蹤數組變化并更新 DOM。
登錄后復制
2. 使用 Vue.set() 方法
Vue.set() 方法可以設置數組中的特定索引,并觸發數組變化的通知。
Vue.set(this.items, 0, '新項目');
登錄后復制
3. 使用 .push()、.pop() 和 .splice() 方法
這些方法會修改數組,并自動觸發數組變化的通知。
this.items.push('新項目'); this.items.pop(); this.items.splice(0, 1);
登錄后復制
4. 使用 $watch() 方法
$watch() 方法可以監聽特定數據的變化,包括數組。
watch: { items: { handler(val, oldVal) { // 在數組變化時執行函數 }, deep: true, }, },
登錄后復制
注意:
如果需要監聽數組中對象的更改,需要將 deep 選項設置為 true,以啟用深度監視。
Vue.js 默認會使用 Object.freeze() 來使數組不可變,如果需要修改數組,需要手動解除凍結。