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

注意事项

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

vue实现事件监听处理

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

相关文章

vue实现选区

vue实现选区

Vue 实现选区的基本方法 在Vue中实现选区功能通常涉及DOM操作和事件处理。以下是几种常见的方法: 使用原生JavaScript的Selection API 通过window.getSel…

vue实现签章

vue实现签章

Vue 实现签章功能 签章功能通常包括手写签名、电子印章等。以下是基于 Vue 的实现方法: 使用 canvas 实现手写签名 安装依赖(如需要): npm install signatu…

javascript实现vue

javascript实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,主要包括数据绑定、响应式系统和虚拟 DOM。以下是一个简化的实现示例。 数据响应式系统 通过 Object.de…

vue多选实现

vue多选实现

Vue 多选实现方法 基础实现(v-model + multiple) 在 Vue 中实现多选可以通过 <select> 元素的 multiple 属性结合 v-model 完成。v-mo…

vue jwt实现

vue jwt实现

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

vue拼图实现

vue拼图实现

实现 Vue 拼图游戏的方法 使用 Vue 组件和动态数据绑定 创建一个 Vue 组件来管理拼图的状态和逻辑。通过 v-for 动态渲染拼图块,利用 v-bind 绑定样式和位置。拼图块的数据可以存储…