1.下面的代码:
<div class="box1" @click="one()">
<div class="box2" @click="two()">
<button @click="three()">button</button>
</div>
</div>
上面的代码在点击button按钮的时候,button和box2和box1中的click方法会一次触发,这就是事件的冒泡。
2.如果希望点击button的时候只会触发button上的click方法,使用.stop事件修饰符。
<div class="box1" @click="one()">
<div class="box2" @click.stop="two()">
<button @click.stop="three()">button</button>
</div>
</div>
3.像上面的.stop类似的还有很多事件修饰符,下面介绍几种:
.stop:事件触发后不会再冒泡触发底层元素的相同事件
.self:当自己是事件上面那层元素时触发
.capture:多层元素相同事件触发的时候,会优先触发.capture修饰的事件
.prevent:阻止元素的默认事件触发,比如a标签的点击默认会跳转网页,提交按钮的点击会提交等,加上.prevent会阻止这些默认的事件触发
.once:让事件只生效一次,再次点击则触发使用元素默认的事件
4.事件监听符支持串行使用如:@click.prevent.once="click()"