当前位置:首页 > 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: npm install element-ui 引入并注册组件: import Vue from '…

tabbar 实现 vue

tabbar 实现 vue

在 Vue 中实现 TabBar 功能可以通过多种方式完成,以下是几种常见的方法: 使用 Vue Router 结合自定义组件 创建一个自定义的 TabBar 组件,结合 Vue Router 实现…

vue 实现templateurl

vue 实现templateurl

在 Vue 中,templateUrl 是 Angular 中的一个概念,用于指定外部 HTML 文件作为模板。Vue 本身不直接支持 templateUrl,但可以通过以下方法实现类似功能: 使用…

react实现vue

react实现vue

React 实现 Vue 功能 React 和 Vue 是两种不同的前端框架,但可以通过一些方法在 React 中实现 Vue 的特性。以下是几种常见 Vue 功能在 React 中的实现方式: 双…

vue 实现登录验证

vue 实现登录验证

Vue 实现登录验证的方法 使用 Vue Router 进行路由守卫 在 Vue 项目中,可以通过 Vue Router 的路由守卫(Navigation Guards)实现登录验证。路由守卫可以在路…

vue实现回顶部

vue实现回顶部

实现方法一:使用 window.scrollTo 在Vue组件中,可以通过调用 window.scrollTo 方法平滑滚动到页面顶部。该方法接受一个配置对象,指定滚动行为为平滑(smooth)。…