当前位置:首页 > VUE

vue实现事件监听处理

2026-02-25 05:55:24VUE

Vue 事件监听实现方式

Vue 提供了多种方式实现事件监听,适用于不同场景。

模板内直接监听 在模板中使用 v-on 或简写 @ 绑定事件:

<button @click="handleClick">点击触发</button>

对应方法需在组件的 methods 中定义:

vue实现事件监听处理

methods: {
  handleClick(event) {
    console.log('事件触发', event)
  }
}

自定义事件监听 父子组件间通过 $emitv-on 通信:

<!-- 子组件 -->
<button @click="$emit('custom-event', payload)">触发事件</button>

<!-- 父组件 -->
<child-component @custom-event="handleCustomEvent"/>

生命周期钩子监听 在组件生命周期中手动添加/移除事件监听:

vue实现事件监听处理

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

事件总线模式 创建全局事件总线(适合非父子组件通信):

// main.js
Vue.prototype.$eventBus = new Vue()

// 组件A发送事件
this.$eventBus.$emit('global-event', data)

// 组件B监听事件
this.$eventBus.$on('global-event', this.handleGlobalEvent)

修饰符使用 Vue 提供事件修饰符简化常见操作:

<form @submit.prevent="onSubmit"></form>
<button @click.stop="doThis"></button>
<div @scroll.passive="onScroll"></div>

注意事项

  • 组件销毁前需手动移除全局事件监听
  • 事件总线适用于小型应用,复杂场景建议使用 Vuex
  • .passive 修饰符能提升移动端滚动性能
  • 避免在模板中编写复杂逻辑,应封装到 methods 中

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

相关文章

vue实现字母添加排序

vue实现字母添加排序

实现字母添加排序的方法 在Vue中实现字母添加排序功能,可以通过以下步骤完成: 创建Vue实例并定义数据 new Vue({ el: '#app', data: { letters…

vue实现流程

vue实现流程

Vue 实现流程的基本步骤 安装 Vue.js 可以通过 CDN 引入或使用 npm/yarn 安装。 CDN 方式: <script src="https://cdn.jsdelivr.…

vue菜单实现

vue菜单实现

Vue 菜单实现方法 使用 Element UI 的菜单组件 Element UI 提供了现成的菜单组件,适合快速实现导航菜单。安装 Element UI 后,可以直接使用 el-menu 相关组件。…

vue实现机制

vue实现机制

Vue 实现机制的核心原理 Vue.js 的核心实现机制主要基于响应式系统、虚拟 DOM 和组件化设计。以下是关键实现细节: 响应式系统 Vue 通过 Object.defineProperty(V…

vue实现字幕

vue实现字幕

Vue 实现字幕功能 在 Vue 中实现字幕功能可以通过动态绑定数据和 CSS 动画来实现。以下是具体实现方法: 1. 基础字幕组件 创建一个字幕组件,通过 v-model 或 props 接收字…

vue简单实现

vue简单实现

Vue 简单实现示例 以下是一个使用 Vue.js 创建简单应用的示例,涵盖基本功能如数据绑定、事件处理和组件化。 基础 HTML 结构 <!DOCTYPE html> <html…