Artículo de referencia: https://segmentfault.com/a/1190000015852875
https://segmentfault.com/a/1190000008457972
Burbujeante rendimiento:
<div v-for="(item, index) in listData" @click="handleClick3">
<el-col :span="grid">
<div @click="handleClick1"></div>
</el-col>
<el-col @click="handleClick2">
</el-col>
</div>
Burbujeante actuación aquí es que cuando el usuario hace clic en el área de eventos Evento 1 o 2, se ejecutarán 3 eventos. Esto se debe a que el tiempo de mecanismo de burbujeo, lo que lleva a hacer clic en 'handleClick1' responderá 'handleClick3'. La mayoría de las veces esto no es deseable, la misma que no quieren aquí.
solución Vue de
<div v-for="(item, index) in listData" @click="handleClick3">
<el-col :span="grid">
<div @click.stop="handleClick1"></div>
</el-col>
<el-col @click.stop="handleClick2">
</el-col>
</div>
Además de burbuja, modificadores vue también proporcionan estas funciones.
<!-- 阻止单击事件继续传播 -->
<a v-on:click.stop="doThis"></a>
<!-- 提交事件不再重载页面 -->
<form v-on:submit.prevent="onSubmit"></form>
<!-- 修饰符可以串联 -->
<a v-on:click.stop.prevent="doThat"></a>
<!-- 只有修饰符 -->
<form v-on:submit.prevent></form>
<!-- 添加事件监听器时使用事件捕获模式 -->
<!-- 即元素自身触发的事件先在此处处理,然后才交由内部元素进行处理 -->
<div v-on:click.capture="doThis">...</div>
<!-- 只当在 event.target 是当前元素自身时触发处理函数 -->
<!-- 即事件不是从内部元素触发的 -->
<div v-on:click.self="doThat">...</div>