当前位置:首页 > 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 实现弹幕的方法 使用 CSS 动画和动态渲染 在 Vue 中实现弹幕效果,可以通过动态渲染弹幕元素并结合 CSS 动画实现。以下是具体步骤: 数据准备 创建一个数组存储弹幕数据,每条弹幕…

vue实现xss

vue实现xss

XSS 攻击简介 XSS(跨站脚本攻击)是一种常见的安全漏洞,攻击者通过注入恶意脚本到网页中,当其他用户访问该页面时,脚本会在其浏览器中执行,可能导致数据泄露或会话劫持。 Vue 中的 XSS…

vue功能实现

vue功能实现

Vue 功能实现指南 Vue.js 是一个渐进式 JavaScript 框架,广泛用于构建用户界面。以下是 Vue 功能的常见实现方法。 数据绑定 Vue 的核心功能之一是数据绑定,通过 v-mo…

通过vue实现

通过vue实现

Vue 实现方法 安装 Vue 确保已安装 Node.js 和 npm,通过以下命令安装 Vue CLI: npm install -g @vue/cli 创建 Vue 项目 使用 Vue CLI…

vue tab实现

vue tab实现

Vue Tab 实现方法 使用动态组件实现 Tab 在 Vue 中可以通过动态组件 <component :is="currentTab"> 结合 v-for 和 v-bind 实现 Ta…

vue实现抖动

vue实现抖动

Vue 实现抖动效果 在 Vue 中实现抖动效果可以通过 CSS 动画或 JavaScript 动画库来实现。以下是几种常见的方法: 使用 CSS 动画 通过定义 @keyframes 动画并在 V…