在 vue 2 中,通過原生數組函數操作數組時,使用 vue.set() 方法監聽非響應式操作:target:修改的數組key:設置的索引value:設置的值
Vue 2 中監聽數組變化
在 Vue 2 中,可以通過使用 .push()、.pop()、.shift()、.unshift() 和 .splice() 等原生 JavaScript 數組函數來改變數組。Vue 2 提供了 Vue.set() 方法來監聽數組的非響應式操作,如:
// 創建一個 Vue 響應式數組 const array = Vue.observable(['foo', 'bar']); // 使用原生 JavaScript 函數添加一個元素 array.push('baz'); // 數組不會觸發更新,因為它是非響應式的 console.log(array.length); // 3
登錄后復制
要監聽 array 的變化,可以使用 Vue.set() 方法:
// 使用 Vue.set() 監聽數組變化 Vue.set(array, 3, 'qux'); // 數組將觸發更新,因為現在它是響應式的 console.log(array.length); // 4
登錄后復制
Vue.set() 接受三個參數:
target: 要修改的數組
key: 要設置的索引
value: 要設置的值
還可以在數組上使用 v-model 指令,它會自動監聽數組的變化:
<template><ul> <li v-for="item in array" :key="item">{{ item }}</li> </ul></template><script> export default { data() { return { array: ['foo', 'bar'], }; }, }; </script>
登錄后復制
當 array 發生變化時,
將自動更新。