美文网首页
vue.js 中的事件修饰符

vue.js 中的事件修饰符

作者: EngineerPan | 来源:发表于2022-10-11 22:35 被阅读0次
    1. stop
      阻止事件传递(事件冒泡),即:事件处理只在当前元素的响应方法中响应,响应完毕后事件不继续传播给父元素;
      <div @click="event1($event)" id="event1">
          内容
          <p @click.stop="event2($event)" id="event2">事件传递</p>
      </div>
      
      使用事件修饰符stop后,event2($event)方法响应完就代表整个事件处理已经完成,事件不继续传递给event1($event)方法。
    2. prevent
      拦截DOM元素的默认事件;
      <a @click.prevent="onClick" href="https://www.baidu.com/">百度一下</a>
      
      假如不使用prevent,那么当我点击了a标签时,会进行自动跳转。但是当使用prevent过后,会拦截掉a标签的默认事件,而执行绑定的事件。
    3. capture
      主动捕获元素上的事件
      <div @click.capture="event1($event)" id="event1">
                  内容
          <p @click="event2($event)" id="event2">事件传递</p>
      </div>
      
      当使用了capture修饰符之后,如果单击id == “event2”的元素,会优先执行capture修饰的事件event1($event),然后再执行event2($event);如果没有使用修饰符,那么会优先执行event2($event),再执行event1($event)
    4. self
      只有self修饰的事件的事件源是响应方法绑定的元素时才触发;
      <div @click.self="event1($event)" id="event1">
          内容
          <p @click="event2($event)" id="event2">事件传递</p>
      </div>
      
      当使用了self修饰符之后,只有单击id == “event1”的元素,才会触发event1($event),单击id == “event2”的元素时不会触发event1($event)
    5. once
      once修饰的事件响应方法只会响应一次,一旦响应过后就不会再次响应;
      <p @click.once="event2($event)" id="event2">事件传递</p>
      
      当单击id == "event2"的元素时,响应方法event2($event)只会被执行一次,一旦执行过后就不会再执行了。
    6. passive
      告诉浏览器你不想阻止事件的默认行为;
      <p @click.passive="event2($event)" id="event2">事件传递</p>
      

    相关文章

      网友评论

          本文标题:vue.js 中的事件修饰符

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