Vue中的事件修饰符
- prevent:阻止默认事件
- stop:阻止事件冒泡
- once:事件只触发一次
- capture:使用事件的捕获模式
- self:只有event.target是当前操作的元素时才是触发事件
- passive:事件的默认行为立即执行,无需等待事件回调执行完毕。
阻止默认事件
javascript
@click.prevent="atip"
// click后面加prevent第二种写法:
javascript
atip(e){
alert('啊埃杜阿多大');
// 阻止默认事件
e.preventDefault()
console.log(e)
}阻止冒泡
javascript
<div class="box" @click="atip">
<button @click.stop="atip">点我弹窗</button>
</div>第二种写法
javascript
e.stopPropagation()事件只触发一次
javascript
<button @click.once="atip">点我弹窗</button>捕获阶段触发事件
事件的触发默认是在冒泡阶段触发的。
将capture修饰符加在外层元素事件上。
html
<div class="box1" @click.capture="tip(1)">
box1
<div class="box2" @click="tip(2)">
box2
</div>
</div>事件自身触发
此方法也可以阻止冒泡。
html
<!-- 只有event.target是当前操作的元素时才触发 -->
<div class="box1" @click.self="tip">
box1
<div class="box2" @click="tip">
box2
</div>
</div>立即执行
事件的默认行为立即执行,无需等待事件的回调函数执行完毕
JavaScript
<ul class="list" @wheel.passive="demo">
//无需滚动条的事件执行完毕即可滚动但不是所有事件都有影响的。
修饰符可以连续写
先阻止冒泡,在阻止默认的事件
vue
<a href="https://www.baidu.com" @click.stop.prevent="demo"></a>