插件窝 干货文章 vue2怎么监听数组变化

vue2怎么监听数组变化

数组 监听 array vue 93    来源:    2024-10-21
在 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 发生变化时,

    将自动更新。