Vue 事件修饰符汇总

Vue 提供了一些事件修饰符,用于在处理 DOM 事件时提供额外的控制或功能。以下是一些常用的 Vue 事件修饰符:

  1. .stop:阻止事件冒泡。(内有外无)

  2. .prevent:阻止事件默认行为。(阻止事件)

  3. .capture:事件将在捕获阶段触发。(先外后内)

  4. .self:只当事件在该元素本身触发时触发回调。

  5. .once:事件将只触发一次。

  6. .passive:告诉浏览器不要等待 preventDefault() 完成。

  7. .native:监听组件根元素的原生事件。

  8. .left:只当点击鼠标左键时触发。

  9. .right:只当点击鼠标右键时触发。

  10. .middle:只当点击鼠标中键时触发。

  11. .exact:精确匹配监听的按键,而不是包含它们的修饰符组合。

  12. .once:只触发一次。

  13. .passive:滚动事件的默认行为(即滚动行为)将会立即触发。

---

提醒:一般内外包含的层设置事件,都是按照冒泡方式从内到外,除非设置capture才是按照从外到内。如果冒泡方式不要上升,就设置stop


.stop 事件修饰符

.stop 修饰符用于阻止事件冒泡,即停止事件在 DOM 树中向上或向下传播。

<template>
  <div>
    <div @click="outerClick">
      Outer Div
      <div @click.stop="innerClick">Inner Div</div>
    </div>
  </div>
</template>

<script>
export default {
  methods: {
    outerClick() {
      console.log('Outer Div clicked');
    },
    innerClick() {
      console.log('Inner Div clicked');
    }
  }
};
</script>

在这个示例中,当点击内部的 <div> 元素时,事件会被阻止冒泡到外部的 <div> 元素,因此不会触发外部的 outerClick 方法。只有内部的 innerClick 方法会被触发。

.prevent 事件修饰符

.prevent 修饰符用于阻止事件的默认行为,例如阻止 <a> 元素的默认跳转行为或 <form> 元素的默认提交行为。

<template>
  <form @submit.prevent="handleSubmit">
    <button type="submit">Submit</button>
  </form>
</template>

<script>
export default {
  methods: {
    handleSubmit() {
      console.log('Form submitted');
      // 阻止表单提交的默认行为
      // 这里可以进行自定义的表单提交逻辑
    }
  }
};
</script>

在这个示例中,当表单提交时,使用了 .prevent 修饰符来阻止表单的默认提交行为。相应地,handleSubmit 方法将被调用,但是表单不会真正提交,因为默认的提交行为被阻止了。

.capture 修饰符的示例:

<template>
  <div>
    <div @click.capture="handleCapture">
      Outer Div
      <div>
        Inner Div
        <button @click="handleClick">Click me</button>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  methods: {
    handleCapture() {
      console.log('Capturing phase: Outer Div clicked');
    },
    handleClick() {
      console.log('Bubbling phase: Button clicked');
    }
  }
};
</script>

在这个示例中,当点击按钮时,首先会触发外部的 <div> 元素的捕获阶段事件监听器 handleCapture,输出 'Capturing phase: Outer Div clicked'。然后再触发按钮的冒泡阶段事件监听器 handleClick,输出 'Bubbling phase: Button clicked'。

.capture 修饰符使得事件监听器在捕获阶段就能够捕获到事件,而不必等到冒泡阶段才执行,这在某些场景下非常有用。

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值