vue实现事件绑定的是
Vue 事件绑定的实现方式
Vue 使用 v-on 指令或简写 @ 来实现事件绑定。以下是常见用法和示例:
基本语法
<button v-on:click="handleClick">点击</button>
<!-- 简写形式 -->
<button @click="handleClick">点击</button>
方法定义
在 Vue 组件的 methods 选项中定义事件处理函数:
methods: {
handleClick(event) {
console.log('按钮被点击', event);
}
}
传递参数
可以在绑定事件时传递自定义参数:
<button @click="handleClick('参数', $event)">传递参数</button>
对应的方法:
methods: {
handleClick(arg, event) {
console.log(arg, event);
}
}
事件修饰符
Vue 提供了一些常用的事件修饰符:
.stop:阻止事件冒泡.prevent:阻止默认行为.capture:使用捕获模式.self:仅当事件从元素本身触发时触发.once:只触发一次.passive:提升滚动性能
示例:
<form @submit.prevent="onSubmit">阻止表单默认提交</form>
<a @click.stop="doThis">阻止点击事件冒泡</a>
按键修饰符
可以直接监听特定按键事件:
<input @keyup.enter="submit" placeholder="按回车提交">
常用按键别名:
.enter.tab.delete.esc.space.up.down.left.right
系统修饰键
可以组合使用系统修饰键:
<input @keyup.ctrl.enter="submit" placeholder="Ctrl+Enter提交">
鼠标按钮修饰符
监听特定鼠标按钮:
<div @click.right="rightClick">右键点击</div>
自定义事件
子组件可以通过 $emit 触发自定义事件:
this.$emit('custom-event', payload);
父组件监听:
<child-component @custom-event="handleCustomEvent"></child-component>
事件总线(Event Bus)
对于非父子组件通信,可以使用事件总线:
// 创建事件总线
const EventBus = new Vue();
// 发送事件
EventBus.$emit('event-name', data);
// 接收事件
EventBus.$on('event-name', (data) => {
// 处理事件
});
原生事件绑定
在组件上绑定原生 DOM 事件需要使用 .native 修饰符:

<my-component @click.native="handleClick"></my-component>
Vue 的事件绑定系统提供了灵活的方式来处理用户交互,从简单的点击事件到复杂的自定义事件系统,都能优雅地实现。






