VUE3 click 点击事件及修饰符

本文详细介绍了Vue.js中如何绑定和处理点击事件,包括单个和多个事件的绑定,以及事件修饰符的使用,如.stop、.prevent、.capture、.once和.passive。此外,还涉及到了按键修饰符,展示了如何根据按键触发特定操作。这些内容对于理解和优化Vue应用的事件交互至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

只绑定一个点击事件

<button @click="greet">单个点击事件</button>
methods:{
        greet(){
            console.log('单个点击事件')
        }
    }

一个标签内绑定多个点击事件方法

<button @click="one($event), two($event)">多个点击事件</button>
methods:{
        one(e){
            console.log(e)
        },
        two(e){
            console.log(e)
        }
    }

事件修饰符

.stop 阻止单击事件继续冒泡(适用于出现嵌套点击事件时)
<div @click="box('我是大box')" style="width:500px; background:red">
    <button @click.stop="doThis('我是内嵌点击事件按')">单个点击事件</button>
 </div>
 methods:{
        doThis(val){
            console.log(val)
        },
        box(val){
            console.log(val)
        }
    }
.prevent 阻止默认事件
<form action="">
    <!-- 默认提交事件 -->
    <!-- <input type="submit" value="提交"> -->
    <!-- 阻止默认事件 -->
    <input type="submit" value="提交" @click.prevent="submitCLICK('prevent阻止默认事件')">
  </form>
methods:{
        submitCLICK(val){
            console.log(val)
        }
    }
.capture 即内部元素触发的事件先在此处理,然后才交由内部元素进行处理
<form action="">
    <input type="submit" value="提交" @click.capture="submitCLICK('capture先在此处理')">
  </form>
methods:{
        submitCLICK(val){
            console.log(val)
        }
    }
.once点击事件将只会触发一次
<button @click.once="ononce('点击事件将只会触发一次')">点击事件将只会触发一次</button>
methods:{
        ononce(val){
            console.log(val)
        }
    }
.passive用在移动端的scroll事件,来提高浏览器响应速度,提升用户体验
<!-- 滚动事件的默认行为 (即滚动行为) 将会立即触发,   -->
<div @scroll.passive="onScroll">...</div>
修饰符串联使用(按循序执行)
// 按循序执行先执行阻止冒泡事件在执行阻止默认事件
<a @click.stop.prevent="doThat"></a>
TIP
不要把 .passive 和 .prevent(阻止默认事件) 一起使用,因为 .prevent 将会被忽略,同时浏览器可能会向你展示一个警告。请记住,.passive 会告诉浏览器你不想阻止事件的默认行为。

按键修饰符

Vue 为最常用的键提供了别名:

	.enter
	.tab
	.delete (捕获“删除”和“退格”键)
	.esc
	.space
	.up
	.down
	.left
	.right
<!-- 只有在 `key``Enter` 时调用 `vm.submit()` 按enter键执行 -->
<input @keyup.enter="submit" />
<!--delete 键执行 -->
<input @keyup.delete="submit" />

系统修饰键

.ctrl
.alt
.shift
.meta	
<!-- Alt + Enter 时触发-->
<input @keyup.alt.enter="clear" />

<!-- Ctrl + Click 按住加点击时触发-->
<div @click.ctrl="doSomething">Do something</div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GIS-CL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值