当前位置:首页 > 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 选项:

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

监听特定路径

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

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

使用 $watch API

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

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 返回的函数停止监听:

vue watch实现

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

标签: vuewatch
分享给朋友:

相关文章

前端vue登录功能实现

前端vue登录功能实现

Vue 登录功能实现步骤 创建登录表单组件 在 Vue 项目中创建一个登录组件,通常命名为 Login.vue。该组件包含用户名和密码输入框以及提交按钮。 <template> &l…

vue实现triger

vue实现triger

在Vue中实现触发器(trigger)功能通常涉及自定义事件或DOM事件触发。以下是几种常见场景的实现方法: 自定义事件触发 通过$emit方法触发父组件中监听的自定义事件: // 子组件 thi…

vue实现标签

vue实现标签

Vue 实现标签的方法 在 Vue 中实现标签功能可以通过多种方式完成,以下是几种常见的方法: 使用动态组件 动态组件可以根据不同的条件渲染不同的标签内容。通过 :is 属性动态绑定组件名,实现标签…

vue原理实现

vue原理实现

Vue 原理实现的核心机制 Vue.js 的核心原理基于响应式系统、虚拟 DOM 和模板编译。以下是其核心实现机制的分解: 响应式系统 Vue 使用 Object.defineProperty(Vu…

vue实现pwa

vue实现pwa

Vue 实现 PWA 的步骤 Vue 结合 PWA(Progressive Web App)可以创建离线可用的 Web 应用。以下是实现方法: 安装 Vue CLI 并创建项目 确保已安装 Vue…

vue实现京东

vue实现京东

Vue 实现京东电商网站的关键步骤 项目搭建与基础配置 使用 Vue CLI 或 Vite 初始化项目,安装 Vue Router 管理路由,Vuex/Pinia 管理状态。配置基础 UI 框架如 E…