vue事件修饰符

讲五个事件修饰符 :

  • .stop :阻止冒泡行为
  • .prevent :组织默认事件,比如a的href
  • .self :只有自身才能触发此事件,比如由冒泡触发的就会阻止
  • .capture :捕获冒泡事件,在触发冒泡事件的时候,是由外到内的触发
  • .once :设置事件只是触发一次 ,例如@click.prevent.once仅第一次点击事件会阻止默认事件的发生,prevent和once的顺序无所谓

下面分开来演示一下:

先演示一下冒泡事件
 <div id="app"> 
      <!-- .stop -->  
      <div class="grandpa flex" @click="grandpaHandle">我是爷爷
         <div class="partent flex" @click="partentHandle">我是父亲
             <div class="child flex" @click="childHandle">我是儿子
             </div>
         </div>
       </div> 
   </div>    
  <script>
    var vm=new Vue ({  
         el: '#app',
         data: {}, 
          methods: {
             grandpaHandle(){ 
                 console.log("我是爷爷触发的事件");
             },   
            partentHandle() {
                console.log("我是父亲触发的事件"); 
             },               
            childHandle() {                   
               console.log("我是儿子触发的事件")               
            }           
          }       
      })    
 </script>

结果如下图所示:当我点击“我是儿子”的时候,会由内向外触发其父元素的点击事件只至根元素,这就是 冒泡事件
在这里插入图片描述


阻止冒泡事件:.stop

当我们在儿子点击事件前面加上.stop再点击“我是儿子”时,就会阻止其向下冒泡,没有触发其父元素的冒泡事件
在这里插入图片描述


.self绑定自身事件

.stop添加在子元素方法 上可以阻止事件的冒泡,子元素事件触发的同时不会触发父元素的事件,同时,我们也可以在父元素上操作,这就用到了 .self 修饰符,它是保证只有自身才能触发,可以避免冒泡事件的影响。

比如:我在“父亲”元素的click事件添加 .self 修饰符,点击“儿子”,就不会触发父亲的click事件了,但是还是会触发“爷爷”的click事件
在这里插入图片描述
在这里插入图片描述


.capture:捕获冒泡事件

冒泡事件是由内而外触发,捕获事件是由外而内触发,看图:
在这里插入图片描述
点击 “儿子”
在这里插入图片描述


.prevent:阻止默认事件

<a href="https://baidu.com" @click.prevent="aHandle">aaaaaa</a>

prevent修饰符可以使我们在点击a标签的时候不跳转href的链接,触发click事件


.once:设置事件只触发一次

 <a href="https://baidu.com" @click.prevent.once="aHandle">aaaaaa</a>

这个时候,当我们第一次点击a标签的时候,不会跳转而只是触发click事件,但是第二次第三次…点击a标签的时候,a的默认事件就不会阻止

写的有点匆忙了,如果其中有错误,感谢指出~晚安

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值