美文网首页
vue3中事件修饰符

vue3中事件修饰符

作者: 夏日冰红茶 | 来源:发表于2024-08-01 15:58 被阅读0次
  vue3中的事件修饰符有:
  .stop                // 阻止事件传递
  .prevent          // 停止默认事件
  .self                // 自身执行
  .capture         // 使用捕获模式
  .once             // 只执行一次
  .passive         // 立即执行

1、 .stop
作用:阻止冒泡事件
冒泡事件:子元素的事件传递到父元素,即你促发子元素的click事件,由于冒泡,会使外层的父元素的click事件同时触发。

   <div @click="shout(1)">
           <button @click="shout(2)">点击查看内容</button>
   </div>
   内容弹出时先触发弹出2,再触发弹出1。

   方法一:在子元素的click后面直接加上.stop,就可以阻止冒泡事件了:
   <div @click="shout(1)">
           <button @click.stop="shout(2)">点击查看内容</button>
   </div>
         
    方法二:使用参数对象的stopDefault方法,如下:
     <div @click="shout(1)">
             <button @click="shout(2)">点击查看内容</button>
      </div>
      methods: {
       shout(e){
                e.stopDefault()
    }
       }

2、.prevent
作用:阻止浏览器的默认事件
默认事件:移动端浏览器的下拉刷新事件、点击超链接会跳转页面.......

     <a href="http://www.baidu.com" @click="showInfo">点我提示信息</a>
     如上面的示例,点击a标签就会跳转到新链接,这个时候我们需要阻止默认事件,除了去掉href链接这个方法外,还可以用prevent阻止默认事件。
       
     方法一:在click后面直接加上.prevent,如下:
     <a href="http://www.baidu.com" @click.prevent="showInfo">点我提示信息</a>

       方法二:使用参数对象的preventDefault方法,如下:
       <a href="http://www.baidu.com" @click="showInfo($event)">点我提示信息</a>
                   
        methods: {
              showInfo(e){
                       e.preventDefault()
       }
         }

3、.self
作用:阻止自身事件促发,但不会阻止冒泡
<div class="outer" @click="outer">
   <div class="middle" @click.self="middle">
     <button @click="inner">点击</button>
</div>
</div>

当我们点击button的时候,先执行inner,传递到middle,此时middle里有一个.self,.self阻止了middle的click事件,所以继续冒泡到outer,执行outer的click事件。
结果:执行click事件的顺序:inner ----> outer

4、.capture
作用:打乱冒泡顺序(即可以理解为给元素添加一个监听器,当元素发生冒泡时,先触发带有该修饰符的元素。若有多个该修饰符,则由外而内触发。)

<div class="box1" @click.capture="showMsg(1)">
div1
<div class="box2" @click="showMsg(2)">
div2
</div>
</div>
上面的执行顺序是1、2

5、.once
作用:事件只触发一次(常用)

6、.passive
作用:事件的默认行为立即执行,无需等待事件回调执行完毕(不常用)
不要把 .passive 和 .prevent 一起使用,因为 .prevent 将会被忽略。

相关文章

  • 记录一些开发vue3中遇到的问题

    .sync修饰符比如之前一直这样写:(update事件正常写) 但是vue3就不行了,改成 vue3中组件跳转之后...

  • vue中的修饰符

    事件修饰符 使用vue,让代码中只有纯粹的数据逻辑,而不是去处理DOM事件细节。 ---事件修饰符vue事件修饰符...

  • Vue修饰符

    事件修饰符 .prevent修饰符 .stop修饰符 .once修饰符 prevent修饰符 用于阻止默认事件行为...

  • 在vue中使用.stop阻止单击事件继续传播

    一、vue的事件修饰符 为了不在方法中处理DOM事件细节,vue中提供6个事件修饰符。分别是: .stop .pr...

  • Vue事件修饰符

    Vue 事件修饰符 事件修饰符结合使用

  • Vue3.0----移除Api一览

    keyCode,作为v-on修饰符被移除 vue2中可以使用keyCode指代某个按键,vue3不在支持 $on,...

  • vue 修饰符

    修饰符,这里分为两块讲:事件修饰符,按键修饰符, 1,事件修饰符 .stop:阻止单击事件继续传播.prevent...

  • 理解事件处理及相关修饰符 | 重学Vue3

    这个月开始重新开始学习Vue3,从理解基本使用到模拟实现! 本文是关于Vue的事件处理及相关修饰符 看文本篇,你将...

  • vue 常见修饰符

    表单修饰符 事件修饰符 鼠标修饰符 键盘修饰符

  • Vue3的组件上v-model的用法

    Vue3的组件上v-model的用法用法示例: 相当于 vue 2 注:Vue3 v-model没有.sync修饰符

网友评论

      本文标题:vue3中事件修饰符

      本文链接:https://www.haomeiwen.com/subject/jwpohjtx.html