vue事件修饰符

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

2.stop:阻止事件冒泡

3.capture:捕获冒泡,即有冒泡发生时,有该修饰符的dom元素会先执行,如果有多个,从外到内依次执行,然后再按自然顺序执行触发的事件。

4.self:将事件绑定到自身,只有自身才能触发

5.prevent:阻止默认事件的发生

vue3示例如下:

<template>
  <div  @click="div" class="green">
  <button @click="btn">无事件修饰符</button>
  </div>
  <div  @click="div" class="green">
  <button @click.once="btn">once</button>
  </div>
  <div  @click="div" class="green">
  <button @click.stop="btn">stop</button>
  </div>
  <div  @click.capture="div" class="green">
  <button @click="btn">capture</button>
  </div>
  <div  @click.self="div" class="green">
  <button @click="btn">self</button>
  </div>
  <a href="www.baidu.com" @click.prevent>百度</a>
</template>
  import {ref,reactive} from 'vue'
  export default {
    setup () {
        const num = ref(0)
        function add(){
          num.value ++
        }
        function btn(){
          console.log('btn');
        }
        function div(){
          console.log('div');
        }
      return {
          btn,
          div
      }
    }
  }

点击“无事件修饰符”按钮时的结果:

 点击两次“once”按钮时的结果:

        btn只触发一次

 点击“stop”按钮时的结果:

        button标签的点击事件使用了stop,点击button无法触发div

 点击“capture”按钮时的结果:

         先触发div,再触发btn,与冒泡方向相反,从外到内

  点击“self”按钮时的结果:

        div标签的点击事件使用了self,点击button无法触发div

 点击“百度”按钮时不会跳转

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值