Vue 3 事件修饰符

更新时间 2023-09-26 22:57:45

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡 / 赠书活动

目前, 星球 内第一个项目:全栈前后端分离博客项目,演示地址:http://116.62.199.48/, 1.0 版本已经更新完毕,正在更新 2.0 版本。采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 224 小节,累计 35w+ 字,讲解图:1544 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 1000+ 小伙伴加入,欢迎点击围观

Vue 3 提供了一些事件修饰符,用于修改事件监听器的行为。以下是一些常见的事件修饰符:

  • .stop:阻止事件冒泡。
  • .prevent:阻止事件的默认行为。
  • .capture:事件捕获模式,事件从外部元素向内部元素传播时触发。
  • .self:只在当前元素自身触发事件时才调用事件处理函数。
  • .once:事件只会触发一次。
  <!-- 阻止单击事件冒泡 -->
  <a @click.stop="clickMe"></a>
  <!-- 提交事件不再重载页面 -->
  <form v-on:submit.prevent="onSubmit"></form>
  <!-- 添加事件侦听器时使用事件捕获模式 -->
  <div @click.capture="clickTwo"></div>
  <!-- 只有当事件在该元素本身(非子元素)触发时触发回调 -->
  <div @click.self="clickThree"></div>
  <!-- 只有修饰符 -->
  <form v-on:submit.prevent></form>
  <!-- 修饰符串联模式 -->
  <a @click.stop.prevent="clickFour"></a>

示例代码

<template>
  <a href="https://www.quanxiaoha.com">犬小哈教程</a><br>
  <a href="https://www.quanxiaoha.com" @click.prevent="goXiaohaWebsit1">犬小哈教程</a><br>
  <a href="https://www.quanxiaoha.com" @click="goXiaohaWebsit2($event)">犬小哈教程</a>
</template>

<script setup>
  const goXiaohaWebsit1 = () => {
  }

  const goXiaohaWebsit2 = (e) => {
    // 阻止
    e.preventDefault();
  }
</script>

上述代码中,只有第一个链接可以正常跳转,后面两个链接都被阻止了。