当前位置:首页 > VUE

vue实现监听

2026-03-27 17:58:26VUE

Vue 监听实现方法

使用 watch 选项

在 Vue 组件中可以通过 watch 选项监听数据变化。当被监听的数据发生变化时,指定的回调函数会被触发。

export default {
  data() {
    return {
      message: 'Hello'
    }
  },
  watch: {
    message(newVal, oldVal) {
      console.log(`消息从 ${oldVal} 变为 ${newVal}`)
    }
  }
}

深度监听对象

对于对象或数组,需要设置 deep: true 才能监听嵌套属性的变化。

watch: {
  user: {
    handler(newVal, oldVal) {
      console.log('用户信息变化')
    },
    deep: true
  }
}

立即触发监听

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

watch: {
  value: {
    handler(newVal) {
      console.log('初始值:', newVal)
    },
    immediate: true
  }
}

计算属性监听

计算属性 (computed) 可以自动追踪依赖并重新计算,适合派生数据的监听。

computed: {
  reversedMessage() {
    return this.message.split('').reverse().join('')
  }
}

使用 $watch API

可以在组件实例上直接调用 $watch 方法动态添加监听器。

mounted() {
  this.$watch(
    'count',
    (newVal, oldVal) => {
      console.log(`计数从 ${oldVal} 变为 ${newVal}`)
    }
  )
}

监听路由变化

在 Vue Router 中可以通过 watch 监听 $route 对象的变化。

watch: {
  '$route'(to, from) {
    console.log(`路由从 ${from.path} 变为 ${to.path}`)
  }
}

监听 Vuex 状态

使用 mapStatewatch 可以监听 Vuex store 中状态的变化。

computed: {
  ...mapState(['user'])
},
watch: {
  user(newVal) {
    console.log('用户状态更新:', newVal)
  }
}

使用事件总线

对于跨组件监听,可以创建事件总线实现发布-订阅模式。

// event-bus.js
import Vue from 'vue'
export const EventBus = new Vue()

// 发送事件
EventBus.$emit('event-name', data)

// 监听事件
EventBus.$on('event-name', data => {
  console.log('收到事件:', data)
})

生命周期钩子监听

某些特定场景可以通过生命周期钩子实现监听效果。

vue实现监听

updated() {
  console.log('组件已更新')
},
beforeDestroy() {
  console.log('组件即将销毁')
}

标签: vue
分享给朋友:

相关文章

vue实现选中单元格

vue实现选中单元格

Vue 实现选中单元格的方法 基础实现思路 在 Vue 中实现选中单元格功能,通常可以通过动态绑定 class 或 style 来实现。以下是一个基于表格的简单实现示例: <template&…

vue实现删除

vue实现删除

Vue 实现删除功能的方法 在 Vue 中实现删除功能通常涉及以下几个步骤: 数据绑定与列表渲染 使用 v-for 指令渲染列表数据,并为每个项绑定唯一标识符(如 id)。例如: <ul&g…

vue实现视频

vue实现视频

Vue 实现视频播放的方法 在 Vue 项目中实现视频播放可以通过多种方式完成,以下是几种常见的方法: 使用 HTML5 的 <video> 标签 在 Vue 组件中直接使用 HTML…

vue实现双向

vue实现双向

Vue 实现双向绑定的方法 Vue 的双向绑定主要通过 v-model 指令实现,它结合了数据绑定和事件监听,适用于表单元素(如 input、select、textarea 等)。以下是几种常见的实现…

vue监听实现

vue监听实现

Vue 监听实现方法 在 Vue 中可以通过多种方式实现监听数据变化或事件触发,以下是常见的几种方法: 使用 watch 选项 watch 是 Vue 提供的核心功能之一,用于观察和响应 Vue 实…

vue jwt实现

vue jwt实现

Vue JWT 实现方法 安装依赖 确保项目中安装了 jsonwebtoken(后端)和 axios(前端)。若使用 Vue 3,可搭配 vue-router 和 pinia(或 vuex)管理状态。…