当前位置:首页 > 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 中实现默认页面通常涉及路由配置。以下是几种常见的方法: 使用路由重定向 在 Vue Router 配置中,可以通过 redirect 属性设置默认路由:…

vue如何实现重新实现主题

vue如何实现重新实现主题

动态主题切换的实现 在Vue中实现动态主题切换,通常需要结合CSS变量和状态管理。通过修改根元素的CSS变量值,可以全局改变应用的主题样式。 定义主题相关的CSS变量在根元素中: :root…

vue如何实现原理

vue如何实现原理

Vue 的核心实现原理 Vue 的核心原理主要包括响应式系统、虚拟 DOM、模板编译和组件化。以下分模块详细说明其实现机制。 响应式系统 Vue 2.x 使用 Object.defineProper…

vue如何实现分离

vue如何实现分离

Vue 实现组件分离的方法 Vue 可以通过多种方式实现组件分离,提升代码的可维护性和复用性。以下是几种常见的方法: 单文件组件 (SFC) Vue 的单文件组件(.vue 文件)将模板、脚本和样…

vue底层如何实现

vue底层如何实现

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

vue如何实现目录组件

vue如何实现目录组件

实现目录组件的基本思路 在Vue中实现目录组件通常需要结合页面内容的结构化数据(如标题层级),通过动态渲染生成可交互的目录。核心步骤包括提取标题、生成目录结构、实现滚动联动等。 提取标题信息 通过…