Vue 3 事件修饰符

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

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/

截止目前, 星球 内专栏累计输出 66w+ 字,讲解图 2896+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2300+ 小伙伴加入学习 ,欢迎点击围观

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>

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