vue实现事件绑定的是
Vue 事件绑定实现方式
Vue 通过 v-on 指令实现事件绑定,语法为 v-on:事件名="处理方法" 或简写为 @事件名="处理方法"。以下是具体实现方法和示例:
基础事件绑定
<button v-on:click="handleClick">点击触发</button>
<!-- 简写形式 -->
<button @click="handleClick">点击触发</button>
内联事件处理
<button @click="count++">增加计数</button>
方法事件处理
<button @click="greet('Hello')">打招呼</button>
methods: {
greet(message) {
alert(message);
}
}
事件修饰符
<!-- 阻止默认行为 -->
<form @submit.prevent="onSubmit"></form>
<!-- 停止事件冒泡 -->
<div @click.stop="doThis"></div>
<!-- 事件只触发一次 -->
<button @click.once="doThis"></button>
按键修饰符
<!-- 回车键触发 -->
<input @keyup.enter="submit" />
<!-- 特定按键触发 -->
<input @keyup.13="submit" />
系统修饰键
<!-- Ctrl + Click -->
<div @click.ctrl="doSomething"></div>
鼠标按钮修饰符
<!-- 左键点击 -->
<div @click.left="handleLeftClick"></div>
事件对象访问
通过 $event 访问原生事件对象:
<button @click="warn('警告', $event)">提交</button>
methods: {
warn(message, event) {
if (event) {
event.preventDefault()
}
alert(message)
}
}
动态事件名
Vue 2.6+ 支持动态事件名绑定:
<button @[eventName]="handler">动态事件</button>
data() {
return {
eventName: 'click'
}
}
注意事项
- 事件处理函数应定义在
methods选项中 - 使用修饰符时要注意顺序会影响结果(如
@click.prevent.self与@click.self.prevent效果不同) - 对于自定义组件,需要使用
.native修饰符监听原生事件(Vue 2.x)或使用emits(Vue 3.x)







