当前位置:首页 > VUE

vue事件如何实现

2026-01-19 01:01:37VUE

Vue 事件实现方法

Vue 中事件通过 v-on 指令或 @ 简写实现,支持原生 DOM 事件和自定义事件。

原生 DOM 事件绑定

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

方法定义

在 Vue 实例的 methods 中定义事件处理函数:

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

事件修饰符

Vue 提供事件修饰符实现常见功能:

vue事件如何实现

  • .stop:阻止事件冒泡
  • .prevent:阻止默认行为
  • .capture:使用捕获模式
  • .self:仅当事件从元素本身触发时执行
  • .once:事件只触发一次
  • .passive:提升滚动性能
<form @submit.prevent="onSubmit">
  <button @click.stop="doThis">阻止冒泡</button>
</form>

自定义事件

子组件通过 $emit 触发事件,父组件通过 v-on 监听:

// 子组件
this.$emit('custom-event', payload);

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

事件总线(跨组件通信)

创建全局事件总线:

vue事件如何实现

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

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

// 组件B监听事件
this.$eventBus.$on('global-event', data => {
  console.log('接收数据', data);
});

按键修饰符

监听特定按键事件:

<input @keyup.enter="submit" />
<input @keyup.13="submit" /> <!-- 键码方式 -->

系统修饰键

组合键监听:

<button @click.ctrl.exact="onCtrlClick">仅按Ctrl时触发</button>

事件传参

传递额外参数给处理函数:

<button @click="handleClick($event, 'param')">带参数事件</button>

注意事项

  1. 事件处理函数默认接收原生 DOM 事件对象作为第一个参数
  2. 使用 $emit 触发自定义事件时,第二个参数开始为传递的数据
  3. 组件销毁前应移除全局事件监听,避免内存泄漏
  4. .sync 修饰符(Vue 2.x)已由 v-model 参数(Vue 3)替代

分享给朋友:

相关文章

vue底层如何实现

vue底层如何实现

Vue 底层的核心实现机制 Vue 的底层实现主要围绕响应式系统、虚拟 DOM 和组件化架构展开。以下是关键技术的详细解析: 响应式系统 依赖追踪与发布订阅模式 通过 Object.definePr…

vue实现自定义事件

vue实现自定义事件

Vue 自定义事件实现方法 在 Vue 中,自定义事件是通过 $emit 方法触发的,父组件通过 v-on 或 @ 监听子组件触发的事件。以下是几种常见的实现方式: 子组件触发事件 在子组件中,使…

php如何实现静态化

php如何实现静态化

PHP 实现静态化的方法 使用 ob_start() 和 ob_get_contents() 利用 PHP 的输出缓冲功能捕获动态生成的页面内容,将其保存为静态文件。这种方法适用于内容不频繁变化的页面…

php如何实现直播

php如何实现直播

实现直播功能的方法 PHP可以通过结合其他技术和工具来实现直播功能。以下是几种常见的方法: 使用流媒体服务器 配置流媒体服务器如Nginx-RTMP、Red5或Wowza。这些服务器支持RTMP协…

js双击事件如何实现

js双击事件如何实现

实现双击事件的方法 在JavaScript中,可以通过监听dblclick事件或手动检测两次点击的时间间隔来实现双击事件。以下是几种常见的方法: 使用原生dblclick事件 element.ad…

jquery点击事件

jquery点击事件

jQuery 点击事件基础用法 使用 jQuery 绑定点击事件主要通过 .click() 方法或 .on() 方法实现。以下示例展示如何为按钮添加点击事件: // 方法1: 使用 .click()…