vue常用时间修饰符记录

时间:2023-07-13 18:57:20

1、stop:阻止冒泡

  如下:正常情况下,我们点击最内层的inner_inner的时候,事件会向上冒泡,inner 和outer也会执行。我们在inner_inner事件加上.stop修饰符,就会阻止事件向上冒泡,功能等价于原来的event.stopPropagation()

<div @click="outer">Out
<div @click="inner">Inner
<div @click.stop="inner_inner">
inner inner
</div>
</div>
</div>

2、prevent:阻止默认事件

  如下,我们有一个a标签,href指向baidu网址,当我们点击a标签时,执行clickA后,会继续执行默认的跳转事件。我们添加了.prevent修饰符后,就会阻止它的默认事件。功能等价于event.preventDefault()

<a href="http://www.baidu.com" @click.prevent="clickA">baidu</a>

3、self:只有自身执行

  self的作用时,只有点击自身的时候,才会执行,其他的触发(如冒泡啥的)都不会执行

  如下:只有点击Inner div自身的时候,才会执行inner(),点击inner_inner的时候,会冒泡,但是不会被捕获执行

<div @click="outer">Out
<div @click.self="inner">Inner
<div @click="inner_inner">
inner inner
</div>
</div>
</div>

4、capture:捕获冒泡

  当有冒泡事件时,会最先捕获并执行,所以点击inner_inner时,下面的执行顺序是outer--->inner_inner---->inner

<div @click.capture="outer">Out
<div @click="inner">Inner
<div @click="inner_inner">
inner inner
</div>
</div>
</div>

5、once:只执行一次

  这里点击Add num加1,给click事件添加了once修饰符后,事件只会执行一次,再次点击不再执行addOne方法。

<button @click.once="addOne">Add{{num}}</button>

6、native:

  当想要给组件的根元素绑定事件的时候,可以使用native修饰符

  如下,在父组件中调用my-button子组件,定义了click事件,我们都知道在my-button组件中,如果触发父组件定义的事件,是可以执行的,但是我们不想在子组件中触发,希望在父组件中监听这个点击事件,可以给click事件添加.native修饰符

<my-button @click.native='myBtn'></my-button>

Vue.component("my-button",{
template:"<button>My Button</button>"
});