当前位置:首页 > VUE

vue怎么实现数据监听

2026-02-21 00:13:20VUE

Vue 数据监听实现方法

Vue 提供了多种方式实现数据监听,核心机制基于响应式系统。以下是常见的实现方法:

使用 watch 选项

在组件选项中定义 watch 对象,监听特定数据的变化:

export default {
  data() {
    return {
      count: 0
    }
  },
  watch: {
    count(newVal, oldVal) {
      console.log(`count从${oldVal}变为${newVal}`)
    }
  }
}

计算属性 computed

通过计算属性自动追踪依赖,当依赖数据变化时重新计算:

export default {
  data() {
    return {
      firstName: '张',
      lastName: '三'
    }
  },
  computed: {
    fullName() {
      return this.firstName + ' ' + this.lastName
    }
  }
}

$watch API

在组件实例中动态添加监听器:

export default {
  created() {
    this.$watch(
      () => this.count,
      (newVal, oldVal) => {
        console.log('count变化:', newVal, oldVal)
      }
    )
  }
}

深度监听对象

添加 deep: true 选项可深度监听对象内部变化:

watch: {
  user: {
    handler(newVal) {
      console.log('user对象变化', newVal)
    },
    deep: true
  }
}

立即触发监听

配置 immediate: true 使监听器立即执行一次:

watch: {
  value: {
    handler(newVal) {
      console.log('初始值:', newVal)
    },
    immediate: true
  }
}

监听数组变化

Vue 能检测以下数组方法触发的变更:

push()
pop()
shift()
unshift()
splice()
sort()
reverse()

注意事项

  • 对象新增属性需使用 Vue.set()this.$set() 使其响应式
  • 数组直接通过索引修改元素需使用 Vue.set() 或数组方法
  • 异步更新队列可能导致监听触发时机与预期不同

vue怎么实现数据监听

标签: 数据vue
分享给朋友:

相关文章

vue如何实现到期提醒

vue如何实现到期提醒

实现 Vue 到期提醒功能 使用计算属性计算剩余时间 在 Vue 组件中定义一个计算属性,计算目标日期与当前日期的差值。通过 Date 对象获取时间戳并计算剩余天数或小时数。 computed:…

vue 实现tabs

vue 实现tabs

Vue 实现 Tabs 组件的方法 使用动态组件和 v-for 在 Vue 中实现 Tabs 可以通过动态组件和 v-for 指令结合完成。定义一个 tabs 数组,包含每个标签的标题和对应的组件。…

vue实现图集

vue实现图集

Vue 实现图集的方法 在 Vue 中实现图集功能可以通过多种方式完成,以下是一些常见的方法和实现步骤。 使用第三方库(如 vue-image-lightbox) 安装 vue-image-ligh…

vue实现slider

vue实现slider

Vue 实现 Slider 组件 使用 Vue 实现 Slider 组件可以通过原生开发或借助第三方库。以下是两种常见方法: 原生实现 Slider 创建一个基础的 Slider 组件,通过 v-m…

vue实现socket

vue实现socket

Vue 中实现 WebSocket 通信 在 Vue 项目中实现 WebSocket 通信可以通过原生 WebSocket API 或第三方库(如 socket.io-client)完成。以下是两种常…

vue实现input

vue实现input

Vue 实现 Input 输入框的方法 基本双向绑定 使用 v-model 指令实现双向数据绑定,适用于大多数表单场景: <template> <input v-model=…