详解Vue3中的内置组件(transition)

在这里插入图片描述

本文主要介绍Vue3中的内置组件(transition)的普通写法和setup写法。

目录

  • 一、在普通写法中使用内置组件(transition)
  • 二、在setup写法中使用内置组件(transition)
  • 三、使用注意项

在Vue3中,内置了一些组件,其中之一是<transition>组件。<transition>组件用于在元素插入或删除时,为其添加过渡效果。

在Vue2中,<transition>组件使用name属性来定义过渡效果的类名,然后使用CSS来实现具体的过渡效果。而在Vue3中,<transition>组件使用了新的API来定义过渡效果。

一、在普通写法中使用内置组件(transition)

Vue3中<transition>组件的用法如下:

<transition name="fade" mode="out-in"><div v-if="show" key="1">Content</div>
</transition>

在上面的代码中,<transition>组件包裹了一个<div>元素。当showtrue时,<div>元素会被插入到DOM中,并且在插入时会有一个淡入的过渡效果。当showfalse时,<div>元素会从DOM中删除,并且在删除时会有一个淡出的过渡效果。

<transition>组件中,可以设置以下属性来控制过渡效果:

  • name:定义过渡效果的类名。Vue会自动为该类名添加前缀,例如-enter-leave等。
  • type:定义过渡效果的类型,默认为transition,可选值为transitionanimation
  • mode:定义过渡模式。有以下几种模式可选:
    • in-out:新元素先进行过渡,然后当前元素进行过渡。
    • out-in:当前元素先进行过渡,然后新元素进行过渡。
  • duration:定义过渡的持续时间,可以是一个数字或一个对象,对象可以设置enterleaveappear三种状态的持续时间。
  • appear:是否在初始渲染时显示过渡效果,默认为false
  • css:是否使用CSS过渡,默认为true。如果设置为false,则需要手动编写过渡效果的JavaScript逻辑。
  • onBeforeEnteronEnteronAfterEnteronBeforeLeaveonLeaveonAfterLeaveonBeforeAppearonAppearonAfterAppear:过渡的各个阶段的钩子函数。

在Vue3中,<transition>组件的过渡效果可以通过新的API来自定义,例如使用<transition>组件的<template v-slot:>语法来自定义过渡效果的持续时间和钩子函数。

二、在setup写法中使用内置组件(transition)

在Vue3中,可以使用<script setup lang="ts">来编写组件的逻辑部分,包括定义内置组件<transition>的过渡效果。

下面是一个在<script setup lang="ts">中使用<transition>组件的示例:

<template><div><button @click="toggle">Toggle</button><transition name="fade" mode="out-in"><div v-if="show" key="1">Content</div></transition></div>
</template><script setup lang="ts">
import { ref } from 'vue'const show = ref(false)const toggle = () => {show.value = !show.value
}
</script>

在上面的代码中,我们首先使用import语句导入了ref函数。然后,在<script setup lang="ts">中定义了一个名为show的响应式变量,初始值为false。接下来,我们定义了一个名为toggle的函数,用于切换show的值。在按钮的@click事件中,我们调用了toggle函数。

<template>部分,我们使用了<transition>组件来包裹一个<div>元素。当showtrue时,<div>元素会被插入到DOM中,并且在插入时会有一个淡入的过渡效果。当showfalse时,<div>元素会从DOM中删除,并且在删除时会有一个淡出的过渡效果。

通过使用<script setup lang="ts">,我们可以在组件的逻辑部分直接使用响应式变量和方法,而无需在setup()函数中显式地返回一个对象。这样可以让我们的代码更加简洁和易读。

三、使用注意项

在使用 Vue 3 中的内置组件 transition 时,有一些需要注意的地方:

  1. 导入 transition 组件:在 Vue 3 中,transition 组件已经被重命名为 Transition,所以在导入时需要使用 import { Transition } from 'vue'

  2. 使用 Transition 组件:在 Vue 3 中,Transition 组件的使用方式与 Vue 2 有一些不同。首先,Transition 组件的标签名已经改为 <transition>...</transition>,而不再是 <transition-group>...</transition-group>。此外,Transition 组件的属性也有一些改变,例如 name 属性改为 nameappearappear-from-classappear-to-class 等属性改为 appearenter-from-classenter-to-class 等属性。

  3. 使用不同的过渡类名:在 Vue 3 中,过渡类名的生成方式也有所改变。以前,Vue 2 默认使用 v- 前缀加上过渡类型名称作为类名,例如 v-enterv-leave-to 等。而在 Vue 3 中,使用了更加直观的类名,例如 enter-activeleave-active 等。这意味着在使用自定义过渡类名时,需要根据 Vue 3 的类名规则进行相应的修改。

  4. 使用 v-ifv-show:在 Vue 3 中,transition 组件不再支持与 v-ifv-show 一起使用。如果需要在组件动态切换时实现过渡效果,可以考虑使用 transition 组件的 appear 属性或 Transition 组件的 v-ifv-else

  5. 使用 JSX:如果在 Vue 3 中使用 JSX 的方式来写模板代码,需要注意 Transition 组件的使用方式与普通模板的略有不同。在 JSX 中,需要使用 v-slots 来定义过渡的内容,并且 Transition 组件需要使用闭合标签 <Transition></Transition>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/297349.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

精通推荐算法2:推荐系统分类(面试必备)

作者简介&#xff1a; 腾讯算法研究员。硕士毕业于中国科学院大学。在阿里和腾讯工作多年&#xff0c;拥有丰富的搜索和推荐算法经验。CSDN博客专家&#xff0c;原创文章100篇。发表专利15个&#xff0c;其中已授权6个。 系列文章&#xff0c;欢迎关注 精通推荐算法1&#x…

WT2605C音频蓝牙语音芯片:单芯片实现蓝牙+MP3+BLE+电话本多功能应用

在当今的电子产品领域&#xff0c;多功能、高集成度成为了一种趋势。各种产品都需要具备多种功能&#xff0c;以满足用户多样化的需求。针对这一市场趋势&#xff0c;唯创知音推出了一款集成了蓝牙、MP3播放、BLE和电话本功能的音频蓝牙语音芯片——WT2605C&#xff0c;实现了单…

JWT、session、token区别和实现

JWT、session、token区别和实现 这里需要用到Redis和JWT。 springboot版本是3.2.1 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency><…

什么等等? I/O Wait ≠ I/O 瓶颈?

本文地址&#xff1a;什么等等&#xff1f; I/O Wait ≠ I/O 瓶颈&#xff1f; | 深入浅出 eBPF 1. I/O Wait 定义2. 测试验证3. 进一步明确磁盘吞吐和读写频繁进程4. 内核 CPU 统计实现分析5. 总结参考资料 1. I/O Wait 定义 I/O Wait 是针对单个 CPU 的性能指标&#xff0…

Vue3数据交互axios

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 本…

铁山靠之——HarmonyOS基础 - 1.0

HarmonyOS学习第一章 一、HarmonyOS简介1.1 安装和使用DevEco Studio1.2 环境配置1.3 项目创建1.4 运行程序1.5 基本工程目录1.5.1 工程级目录1.5.2 模块级目录1.5.3 app.json51.5.4 module.json51.5.5 main_pages.json 二、TypeScript快速入门2.1 简介2.2 基础类型2.2.1 布尔值…

linux内存寻址原来那么简单

内存寻址 内存寻址听起来高大上&#xff0c;其实真实处理起来很简单&#xff0c;以常见的80x86架构为例&#xff0c;有三种不同的地址&#xff1a; 逻辑地址线性地址物理地址 内存控制单元(MMU)通过分段单元的硬件电路把一个逻辑地址转化为线性地址&#xff0c;通过分页单元的…

华硕主板开机只进入Bios模式不进入Windows系统

华硕电脑进入bios界面解决办法 1.可以按平常方法多重启几下&#xff08;bios界面按f10确认保存&#xff09; 2.是固态硬盘的地方看看是否有松动 插回去就可以了3.图形界面bios先按f7进入高级模式&#xff0c;【security】菜单&#xff0c;通过方向键选择【secure Boot】选项&am…

【MATLAB库函数系列】线性调频Z(Chirp-Z,CZT)的MATLAB源码和C语言实现

在上一篇博客 【数字信号处理】线性调频Z(Chirp-Z,CZT)算法详解 已经详细介绍了CZT变换的应用背景和原理,先回顾一下: 回顾CZT算法 采用 FFT 算法可以很快计算出全部 N N N点 DFT 值,即Z变换 X ( z ) X(z) <

Python 数据分析 Matplotlib篇 增加注释【plt.text() plt.annotate()】(第3讲)

Python 数据分析 Matplotlib篇 增加注释【plt.text() & plt.annotate()】(第3讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔…

C# SqlSugar 数据库 T4模板

生成效果 模板代码 <# template debug"false" hostspecific"true" language"C#" #> <# output extension".cs" #> <# assembly name"System.Core" #> <# assembly name"System.Data" #>…

2024 年全球顶级的 4 款 PDF 转换器软件

PDF 是一种广泛使用的共享文档和文件的格式。但是&#xff0c;有时您可能需要将 PDF 文件转换为其他格式&#xff08;例如 Word 或 Excel&#xff09;&#xff0c;以便编辑或操作内容。这就是 PDF 转换器软件派上用场的地方。 有许多 PDF 转换器软件可供选择&#xff0c;有免费…