当前位置:首页 > VUE

vue实现事件监听处理

2026-02-25 05:55:24VUE

Vue 事件监听实现方式

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

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

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

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

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

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

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

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

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

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>

注意事项

vue实现事件监听处理

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

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

相关文章

vue懒加载实现难吗

vue懒加载实现难吗

vue懒加载的实现难度 Vue懒加载的实现并不复杂,核心逻辑是通过动态导入(Dynamic Imports)和路由配置或组件异步加载完成。以下是具体实现方法: 路由懒加载实现 在Vue Router…

vue实现弹窗

vue实现弹窗

Vue 实现弹窗的常见方法 使用组件化方式封装弹窗 创建一个独立的弹窗组件(如 Modal.vue),通过 v-if 或 v-show 控制显示隐藏: <template> <…

vue实现全景

vue实现全景

Vue 实现全景效果的方法 使用 Vue 实现全景效果通常需要结合第三方库或框架,以下是几种常见的方法: 使用 Three.js 和 Vue-Three.js Three.js 是一个强大的 3D…

vue实现滑块

vue实现滑块

Vue 实现滑块组件的方法 使用原生 HTML 和 Vue 指令 通过 Vue 的 v-model 和事件监听实现基础滑块功能。创建一个包含 input 元素的组件,类型设置为 range,并绑定到…

vue实现动画

vue实现动画

Vue 实现动画的方法 Vue 提供了多种方式来实现动画效果,包括内置的过渡系统、第三方动画库以及直接操作 CSS 或 JavaScript 动画。 使用 Vue 内置过渡系统 Vue 的 <…

vue实现验证

vue实现验证

Vue 表单验证实现方法 在Vue中实现表单验证可以通过多种方式完成,以下是常见的几种方法: 使用Vuelidate库 Vuelidate是一个轻量级的Vue表单验证库,安装后可以通过简单的配置实现…