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

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 动态添加监听器。

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 等)引起的变化。

vue watch 实现方法

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

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

相关文章

vue实现发表

vue实现发表

Vue 实现发表功能 在 Vue 中实现发表功能通常涉及表单处理、数据绑定和网络请求。以下是实现步骤和代码示例: 表单设计与数据绑定 创建一个表单用于输入发表内容,使用 v-model 进行数据双向…

vue实现图册

vue实现图册

Vue实现图册功能 在Vue中实现图册功能通常涉及图片展示、切换、缩放等交互效果。以下是常见的实现方法和关键代码示例: 基础图册组件结构 使用Vue单文件组件构建基础结构: <templat…

vue实现素材

vue实现素材

Vue 实现素材的方法 使用 Vue 组件管理素材 在 Vue 项目中,可以通过组件化的方式管理素材。创建一个专门的组件来加载和显示素材,例如图片、视频或音频文件。组件可以接收素材的路径或 URL 作…

vue实现tree

vue实现tree

Vue 实现 Tree 组件 使用 Vue 实现 Tree 组件可以通过递归组件的方式来实现层级结构展示。以下是一个完整的实现方法: 基础递归组件实现 创建 Tree 组件文件 Tree.vue,使…

vue实现select

vue实现select

Vue 实现 Select 组件的方法 在 Vue 中实现 Select 组件可以通过多种方式完成,以下是几种常见的方法: 使用原生 HTML select 元素 原生 HTML 的 <sel…

vue 分页 实现

vue 分页 实现

Vue 分页实现方法 使用第三方库(如 Element UI) Element UI 提供了现成的分页组件 el-pagination,适合快速集成。 安装 Element UI: npm ins…