当前位置:首页 > VUE

vue watch实现

2026-01-08 00:53:03VUE

在 Vue 中实现 watch 监听数据变化

Vue 的 watch 选项用于监听数据变化并执行相应的回调函数。以下是几种常见的实现方式:

基础用法

export default {
  data() {
    return {
      message: 'Hello'
    }
  },
  watch: {
    message(newVal, oldVal) {
      console.log('message changed:', oldVal, '->', newVal)
    }
  }
}

深度监听对象

当需要监听对象内部属性变化时,使用 deep 选项:

watch: {
  user: {
    handler(newVal, oldVal) {
      console.log('user changed')
    },
    deep: true
  }
}

立即触发回调

如果需要立即执行一次监听回调,使用 immediate 选项:

vue watch实现

watch: {
  value: {
    handler(newVal, oldVal) {
      console.log('value changed')
    },
    immediate: true
  }
}

监听特定路径

使用字符串路径监听嵌套属性:

watch: {
  'user.name'(newVal, oldVal) {
    console.log('user name changed')
  }
}

使用 $watch API

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

vue watch实现

created() {
  this.$watch(
    'count',
    (newVal, oldVal) => {
      console.log('count changed')
    },
    { immediate: true }
  )
}

组合式 API 中的 watch

在 setup() 中使用 watch:

import { ref, watch } from 'vue'

export default {
  setup() {
    const count = ref(0)

    watch(count, (newVal, oldVal) => {
      console.log('count changed')
    })

    return { count }
  }
}

监听多个数据源

监听多个响应式数据:

watch(
  [ref1, ref2],
  ([newVal1, newVal2], [oldVal1, oldVal2]) => {
    console.log('multiple values changed')
  }
)

停止监听

通过调用 watch 返回的函数停止监听:

const stopWatch = watch(data, callback)
// 需要停止时调用
stopWatch()

标签: vuewatch
分享给朋友:

相关文章

vue实现微博发布动态

vue实现微博发布动态

使用Vue实现微博发布动态功能 创建Vue组件结构 新建一个WeiboPost.vue组件,包含文本框、图片上传和发布按钮: <template> <div class="we…

vue实现下拉框删除

vue实现下拉框删除

Vue 实现下拉框删除功能 在Vue中实现下拉框的删除功能通常涉及以下步骤: 数据绑定与渲染 在Vue组件中定义数据数组用于存储下拉框选项: data() { return { op…

vue computed 实现

vue computed 实现

computed 的基本用法 在 Vue 中,computed 用于声明计算属性,这些属性基于响应式依赖进行缓存。只有当依赖发生变化时,计算属性才会重新计算。 new Vue({ data: {…

vue实现handsontable

vue实现handsontable

Vue 中实现 Handsontable 要在 Vue 项目中集成 Handsontable,可以使用官方提供的 @handsontable/vue 封装库。以下是一个完整的实现步骤。 安装依赖 确…

vue 实现过滤

vue 实现过滤

Vue 实现过滤的方法 在 Vue 中实现过滤功能可以通过多种方式完成,包括使用计算属性、自定义过滤器、第三方库等。以下是几种常见的实现方法: 使用计算属性进行过滤 计算属性是 Vue 中最常用的过…

vue实现计算

vue实现计算

Vue 实现计算的方法 在 Vue 中实现计算功能可以通过多种方式完成,主要包括计算属性(computed)、方法(methods)和侦听器(watch)。以下是具体的实现方法: 计算属性(Comp…