当前位置:首页 > 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 返回的函数停止监听:

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

vue watch实现

标签: vuewatch
分享给朋友:

相关文章

vue实现搜索

vue实现搜索

Vue 实现搜索功能 在 Vue 中实现搜索功能通常涉及数据绑定、事件监听和过滤逻辑。以下是几种常见的实现方式: 使用计算属性过滤列表 <template> <div>…

vue实现前端分离

vue实现前端分离

Vue 实现前后端分离 前后端分离是一种架构模式,前端负责页面渲染和交互逻辑,后端提供数据接口。Vue.js 作为前端框架,非常适合实现前后端分离的开发模式。 核心实现步骤 创建 Vue 项目 使…

前端vue登录功能实现

前端vue登录功能实现

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

vue实现适老化样式

vue实现适老化样式

Vue 实现适老化样式的关键方法 全局字体与字号调整 通过 CSS 变量或主题配置统一放大基础字号,建议正文不小于 18px,标题更大。在 App.vue 中设置全局样式: :root { --…

vue表格重置怎么实现

vue表格重置怎么实现

重置表格数据的方法 在Vue中重置表格数据通常需要操作绑定的数据源,以下是几种常见实现方式: 直接重置数据源 // 假设表格绑定的是tableData this.tableData = [...t…

vue实现横向导航

vue实现横向导航

vue实现横向导航的方法 使用Flex布局实现横向导航 在Vue中可以通过Flex布局快速实现横向导航。创建一个组件,使用display: flex和flex-direction: row属性使导航项…