说明:

  1. 使用修饰符时,顺序很重要;相应的代码会以同样的顺序产生。
    1. 因此,用 @click.prevent.self 会阻止元素本身及其子元素的点击的默认行为,而 @click.self.prevent 只会阻止对元素自身的点击的默认行为。
  2. 不要把 .passive 和 .prevent 一起使用,因为 .prevent 将会被忽略,同时浏览器可能会向你展示一个警告。请记住,.passive 会告诉浏览器你_不想_阻止事件的默认行为。

实例:

<!-- 阻止单击事件继续冒泡 -->
<a @click.stop="doThis"></a>
 
<!-- 提交事件不再重载页面 -->
<form @submit.prevent="onSubmit"></form>
 
<!-- 修饰符可以串联 -->
<a @click.stop.prevent="doThat"></a>
 
<!-- 只有修饰符 -->
<form @submit.prevent></form>
 
<!-- 添加事件监听器时使用事件捕获模式 -->
<!-- 即内部元素触发的事件先在此处理,然后才交由内部元素进行处理 -->
<div @click.capture="doThis">...</div>
 
<!-- 只当在 event.target 是当前元素自身时触发处理函数 -->
<!-- 即事件不是从内部元素触发的 -->
<div @click.self="doThat">...</div>
 
<!-- 对应 addEventListener 中的 passive 选项 -->
<!-- 滚动事件的默认行为 (即滚动行为) 将会立即触发,   -->
<!-- 这个 passive 修饰符尤其能够提升移动端的性能 -->
<!-- 而不会等待 onScroll 完成,                    -->
<!-- 以防止其中包含 event.preventDefault() 的情况  -->
<div @scroll.passive="onScroll">...</div>