当前位置:首页 > VUE

vue watch 实现方法

2026-02-18 23:48:34VUE

vue watch 的基本用法

在 Vue 中,watch 用于监听数据的变化并执行相应的操作。可以在组件的 watch 选项中定义监听器。

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

监听对象属性

如果需要监听对象的某个属性变化,可以使用点号语法或字符串形式。

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

深度监听对象

当需要监听对象内部所有属性变化时,可以设置 deep: true

vue watch 实现方法

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

立即执行监听器

设置 immediate: true 可以让监听器在创建时立即执行一次。

watch: {
  message: {
    handler(newVal, oldVal) {
      console.log('Message initialized or changed')
    },
    immediate: true
  }
}

使用 $watch API

除了在组件选项中定义 watch,还可以使用实例方法 $watch 动态添加监听器。

vue watch 实现方法

created() {
  this.$watch('message', (newVal, oldVal) => {
    console.log('Message changed')
  })
}

监听计算属性

watch 也可以用于监听计算属性的变化。

computed: {
  fullName() {
    return this.firstName + ' ' + this.lastName
  }
},
watch: {
  fullName(newVal) {
    console.log('Full name changed to', newVal)
  }
}

取消监听

使用 $watch 返回的函数可以取消监听。

const unwatch = this.$watch('data', handler)
// 需要取消时调用
unwatch()

监听数组变化

Vue 可以监听数组的变异方法(push、pop 等)引起的变化。

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

标签: 方法vue
分享给朋友:

相关文章

验证码实现vue

验证码实现vue

验证码实现(Vue) 使用组件库(如Element UI) Element UI提供了现成的验证码组件,可直接集成到Vue项目中。 安装Element UI: npm install elem…

vue为啥能实现监听

vue为啥能实现监听

Vue 实现监听的原理 Vue 的监听能力主要基于其响应式系统,该系统通过数据劫持和依赖收集实现。当数据变化时,系统能自动触发视图更新或执行回调函数。 核心机制:Object.defineProp…

vue调用接口实现退出

vue调用接口实现退出

实现Vue退出功能的步骤 在Vue中调用接口实现退出功能通常需要与后端API交互,以下是实现方法: 前端实现 创建退出方法,调用后端API接口: methods: { logout()…

vue实现绑卡的原理

vue实现绑卡的原理

Vue 实现绑卡的原理 Vue 实现绑卡功能通常涉及前端表单处理、数据绑定、验证以及和后端 API 的交互。以下是实现绑卡功能的核心原理和步骤: 数据绑定与表单处理 Vue 通过 v-model 指…

vue实现a

vue实现a

Vue 实现 A 功能的方法 在 Vue 中实现 A 功能可以通过多种方式,具体取决于 A 功能的具体需求。以下是几种常见的实现方法: 使用 Vue 组件 通过创建自定义组件来实现 A 功能。组件…

vue实现分屏

vue实现分屏

Vue 实现分屏的方法 分屏功能通常用于展示多个独立内容区域,以下是几种常见的实现方式: 使用 CSS Grid 布局 通过 CSS Grid 可以轻松创建分屏布局,在 Vue 组件中直接应用样式…