mecanismo de burbujeo Evento

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>
Publicado 80 artículos originales · ganado elogios 82 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/qq_42893625/article/details/104019971
Recomendado
Clasificación