当前位置:首页 > VUE

vue watch实现

2026-02-10 12:31:06VUE

vue watch 的实现方法

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

基本用法

通过选项式 API 的 watch 选项监听数据变化:

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

监听对象属性

使用点语法或字符串监听对象的嵌套属性:

vue watch实现

watch: {
  'user.name'(newVal) {
    console.log(`用户名变为: ${newVal}`)
  }
}

深度监听

添加 deep: true 监听对象内部所有属性的变化:

watch: {
  user: {
    handler(newVal) {
      console.log('用户信息变化', newVal)
    },
    deep: true
  }
}

立即触发

设置 immediate: true 让监听器立即执行一次:

vue watch实现

watch: {
  count: {
    handler(newVal) {
      console.log(`当前值: ${newVal}`)
    },
    immediate: true
  }
}

组合式 API 用法

setup() 中使用 watch 函数:

import { ref, watch } from 'vue'

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

    watch(count, (newVal, oldVal) => {
      console.log(`count 变化: ${oldVal} -> ${newVal}`)
    })

    return { count }
  }
}

监听多个数据源

传入数组同时监听多个值:

watch(
  [count, user],
  ([newCount, newUser], [oldCount, oldUser]) => {
    console.log('多个值发生变化')
  }
)

停止监听

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

const stop = watch(count, callback)
stop() // 停止监听

这些方法覆盖了 Vue 2 和 Vue 3 中 watch 的主要使用场景,可以根据具体需求选择适合的实现方式。

标签: vuewatch
分享给朋友:

相关文章

vue的艾特功能实现

vue的艾特功能实现

Vue 的 @ 功能实现 在 Vue 中实现类似社交平台的 @ 功能,通常涉及输入框的监听、用户匹配和选择插入。以下是具体实现方法: 监听输入框内容 使用 v-model 绑定输入框内容,并通过 @…

vue实现效果

vue实现效果

以下是Vue实现常见效果的几种典型方法,分为不同场景说明: 数据绑定与响应式更新 使用v-model实现表单双向绑定: <template> <input v-model="…

vue实现xss

vue实现xss

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

vue实现ajax

vue实现ajax

Vue 中实现 AJAX 的几种方法 在 Vue 中实现 AJAX 请求可以通过原生 JavaScript 的 XMLHttpRequest、第三方库如 axios 或 fetch API 来完成。以…

vue实现爬虫

vue实现爬虫

Vue 实现爬虫的基本思路 Vue.js 本身是一个前端框架,主要用于构建用户界面。要实现爬虫功能,通常需要结合后端技术或浏览器自动化工具。以下是几种常见的方法: 方法一:Vue + Node.js…

vue实现列表循环

vue实现列表循环

Vue 列表循环的实现方法 在 Vue 中,可以通过 v-for 指令实现列表循环渲染。以下是几种常见的实现方式: 基础列表渲染 <template> <ul>…