vue中的时间修饰符有以下几种:
1.prevent 阻止默认事件(常用)
2.stop 阻止事件冒泡(常用)
3.once 事件只触发一次(常用)
4.capture 使用事件的捕获模式
5.self 只有event.target是当前操作的元素时才触发事件
6.passive 事件的默认行为立即执行,无需等待事件回调立即执行
1.prevent阻止默认事件 举例:
<!-- 只执行showInfo事件,不执行a标签默认的打开链接操作 -->
<a href="http://www.baidu.com" @click.prevent="showInfo">点击我</a>
2.stop阻止事件冒泡 举例
<!-- 点击son时,阻止事件maopao(father不会响应),没有stop修饰时,son和father会先后响应 -->
<div class="father" @click="showInfo">
<div class="son" @click.stop="showInfo"></div>
</div>
3.once 事件只触发一次 举例
<!-- once只会触发一次 下次点击不触发click事件 -->
<div class="father" @click.once="showInfo"></div>
4.capture 使用事件的捕获模式 举例:
<!-- 常规冒泡点击son,执行顺序是事件showInfo2->showInfo1; 使用capture修饰后,转换为捕获模式,执行顺序是事件showInfo1->showInfo2 -->
<div class="father" @click="showInfo1">
<div class="son" @click.capture="showInfo2"></div>
</div>
5.self 只有event.target是当前操作的元素时才触发事件 举例:
<!-- 只有点击son时,son的click才会触发,点击father时,father的click事件才会触发,起到阻止冒泡的作用 -->
<div class="father" @click.self="showInfo1">
<div class="son" @click="showInfo2"></div>
</div>
6.passive 事件的默认行为立即执行,无需等待事件回调立即执行
<!-- 正常的wheel事件 在鼠标滚轮滚动时会被触发,页面的滑动会不定等待事件处理完毕再下次滑动 passive相当于优先处理页面事件,在不影响页面操作的情况下处理事件 -->
<div class="list">
<ul @wheel="wheel">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
</div>
小技巧:
修饰符可以连,比如@click.stop.prevent=‘’,可以同时阻止冒泡和默认事项;