vue.js 中的事件修饰符

  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>
    
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容