当前位置:首页 > VUE

vue实现事件监听

2026-03-08 14:49:59VUE

Vue 事件监听实现方法

在 Vue 中实现事件监听主要通过 v-on 指令或 @ 缩写语法完成,支持原生 DOM 事件和自定义事件。以下是具体实现方式:

1. 模板中直接监听 DOM 事件

<button v-on:click="handleClick">点击事件</button>
<!-- 简写形式 -->
<button @click="handleClick">简写点击</button>

2. 监听组件自定义事件 子组件通过 $emit 触发事件:

// ChildComponent.vue
this.$emit('custom-event', payload)

父组件监听:

<child-component @custom-event="handleCustomEvent" />

3. 事件修饰符 Vue 提供特殊修饰符简化事件处理:

<!-- 阻止默认行为 -->
<form @submit.prevent="onSubmit"></form>

<!-- 停止事件冒泡 -->
<div @click.stop="doThis"></div>

<!-- 按键修饰符 -->
<input @keyup.enter="submit" />

4. 方法定义 在组件选项中定义处理方法:

methods: {
  handleClick(event) {
    console.log(event.target)
  },
  handleCustomEvent(payload) {
    console.log(payload)
  }
}

5. 生命周期钩子中手动监听mounted 钩子添加原生事件监听:

mounted() {
  window.addEventListener('resize', this.handleResize)
},
beforeDestroy() {
  window.removeEventListener('resize', this.handleResize)
}

6. 事件总线模式(跨组件通信) 创建事件总线实例:

// eventBus.js
import Vue from 'vue'
export default new Vue()

组件A发送事件:

eventBus.$emit('global-event', data)

组件B监听事件:

vue实现事件监听

eventBus.$on('global-event', this.handleGlobalEvent)

注意事项

  • 自定义事件名建议使用 kebab-case 命名
  • 组件销毁前需移除手动添加的事件监听
  • 事件总线适用于简单场景,复杂状态管理建议使用 Vuex

标签: 事件vue
分享给朋友:

相关文章

vue实现标签

vue实现标签

Vue 实现标签的方法 在 Vue 中实现标签功能可以通过多种方式完成,以下是几种常见的方法: 使用动态组件 动态组件可以根据不同的条件渲染不同的标签内容。通过 :is 属性动态绑定组件名,实现标签…

vue实现异步

vue实现异步

Vue 实现异步操作的常见方法 Vue 提供了多种方式来处理异步操作,包括数据获取、事件处理等场景。 使用 async/await 在 Vue 方法中可以直接使用 async/await 语法处理异…

vue能实现

vue能实现

Vue.js 是一个流行的前端框架,能够实现多种功能。以下是 Vue 能够实现的主要功能和特性: 响应式数据绑定 Vue 的核心特性之一是响应式数据绑定。通过数据驱动视图,当数据发生变化时,视图会自…

vue动画实现

vue动画实现

Vue动画实现方法 Vue提供了多种方式实现动画效果,主要通过内置组件和第三方库完成。 使用<transition>组件 Vue内置的<transition>组件可以为元素添…

vue实现心电图

vue实现心电图

Vue 实现心电图效果 在 Vue 中实现心电图效果通常需要结合 Canvas 或 SVG 进行动态绘图,模拟心电图数据的实时变化。以下是两种实现方式的核心思路和代码示例: 使用 Canvas 绘制…

vue实现ftp

vue实现ftp

Vue 中实现 FTP 功能 Vue 本身是一个前端框架,无法直接操作 FTP 协议(FTP 通常需要后端支持)。以下是两种常见实现方式: 前端与后端配合实现 FTP 前端通过 API 与后端通信,…