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

父组件监听:

vue实现事件监听

<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 钩子添加原生事件监听:

vue实现事件监听

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监听事件:

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

注意事项

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

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

相关文章

vue实现$.extend

vue实现$.extend

Vue 实现类似 jQuery 的 $.extend 功能 在 Vue 中实现类似 jQuery 的 $.extend 功能,可以通过多种方式完成。$.extend 主要用于合并多个对象的属性,Vue…

分页实现vue

分页实现vue

分页实现(Vue) 在Vue中实现分页功能通常需要结合前端分页逻辑和后端API支持。以下是两种常见的实现方式: 前端分页实现 适用于数据量较小的情况,直接在客户端完成分页逻辑。 <templ…

vue实现登出

vue实现登出

实现Vue登出功能 登出功能通常涉及清除用户会话、令牌或本地存储的数据,并重定向到登录页面。以下是几种常见的实现方式: 清除用户令牌和状态 在Vuex的store中定义一个logout mutati…

vue实现答题

vue实现答题

Vue 实现答题功能 数据结构设计 使用 Vue 的响应式特性管理题目和答案数据。通常需要以下数据结构: data() { return { questions: [ {…

vue 实现平面

vue 实现平面

Vue 实现平面的方法 在 Vue 中实现平面效果通常涉及 CSS 样式、UI 框架或自定义组件的使用。以下是几种常见方法: 使用 CSS 样式 通过 Vue 的样式绑定或 scoped CSS 为…

vue 实现loading

vue 实现loading

Vue 实现 Loading 的方法 使用 v-if 和 v-show 控制显示 在 Vue 中可以通过 v-if 或 v-show 控制 loading 组件的显示与隐藏。v-if 会动态创建或销毁…