在 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() 接受三个参数:
立即学习“前端免费学习笔记(深入)”;
还可以在数组上使用 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 发生变化时,