Ответ 1
Итак, сразу после публикации я наткнулся на эту статью, которая ясно показывает это. Пусть в этом примере говорят, что у вас есть три элемента, вложенные друг в друга:
<div class="outer">
<div class="middle">
<div class="inner"></div>
</div>
</div>
Когда происходит событие щелчка, есть две фазы: первая называется захват, вторая называется bubbling. Когда вы нажмете на .inner
, событие перейдет от внешнего элемента контейнера .outer
, до .middle
, а затем в .inner
в фазе захвата, затем от .inner
до .middle
, затем .outer
в фазе барботажа.
Если захват установлен на .inner
для обработчика события клика:
<div class="outer">
<div class="middle">
<div class="inner" v-on:click.capture="doThis"></div>
</div>
</div>
и вы нажмете на него, он вызовет doThis(...)
три раза, первый из .outer
, второй из .middle
, а третий из .inner
.
Если захват установлен на .middle
для обработчика события клика
<div class="outer">
<div class="middle" v-on:click.capture="doThis">
<div class="inner"></div>
</div>
</div>
и вы нажмете на него, он вызовет doThis(...)
два раза, первый из .outer
, а второй из .middle