详解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>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux poll 和 select 机制

poll select 介绍 使用非阻塞 I/O 的应用程序常常使用 poll, select, 和 epoll 系统调用. poll, select 和 epoll 本质上有相同的功能: 每个允许一个进程来决定它是否可读或者写一个 或多个文件而不阻塞. 这些调用也可阻塞进程直到任何一个给定集合的文件描述符可用来 读或写.…

Nessus详细安装-windows (保姆级教程)

Nessus描述 Nessus 是一款广泛使用的网络漏洞扫描工具。它由 Tenable Network Security 公司开发&#xff0c;旨在帮助组织评估其计算机系统和网络的安全性。 Nessus 可以执行自动化的漏洞扫描&#xff0c;通过扫描目标系统、识别和评估可能存在的安全漏洞和弱点。它可以检测…

使用 Spring Boot + MyBatis开发需要注意的事项以及开发模版

前言&#xff1a; 注意&#xff0c;本篇不适用于有相关开发经验的开发者&#xff0c;作为一个在职开发者&#xff0c;我经常在完成从0-1的模块&#xff0c;也就是从数据库表开始到创建实体类&#xff0c;以及dao层&#xff0c;Service层等业务需要添加相关注解&#xff0c;这样…

使用office打开word文档时候提示错误:0x426-0x0的解决方案

在使用office打开word文档时候提示错误&#xff1a;0x426-0x0。如下图&#xff1a; 昨天还用的好好的&#xff0c;怎么今天就不行了&#xff1f;为什么呢&#xff1f; 更多工作中遇到问题见&#xff1a;凯哥BK 这个错误导致office无法启动通常是由于office软件所依赖的服务无…

vue的表单收集案例

Vue的表单收集案例 这只是最基础的表单收集&#xff0c;并未涉及到element-ui。 <!DOCTYPE html> <html><head><meta charset"UTF-8" /><title>收集表单数据</title><script type"text/javascript" src"../js…

Hago 的 Spark on ACK 实践

作者&#xff1a;华相 Hago 于 2018 年 4 月上线&#xff0c;是欢聚集团旗下的一款多人互动社交明星产品。Hago 融合优质的匹配能力和多样化的垂类场景&#xff0c;提供互动游戏、多人语音、视频直播、 3D 虚拟形象互动等多种社交玩法&#xff0c;致力于为用户打造高效、多样、…

物理模拟重力 斜抛运动计算 抛物线计算

物理模拟重力 斜抛运动计算 抛物线计算 一、介绍二、原理三、实现如下PhysicsUtil.cs 工具类Missile.cs 四、资源分享 一、介绍 模拟Unity原始重力系统进行重写&#xff0c;可是实现发射到指定目标位置并能继续当前力进行自身的弹力与摩擦继续运动 二、原理 将Unity原始不受控…

word2003 open word2007+

Win 7 C:\Documents and Settings\Administrator\Application Data\Microsoft\Templates 还是不行&#xff0c;重装office2003吧&#xff0c;再安装转换插件&#xff0c;但是再高版本好像没转换工具

【Linux】进程管理

ps&#xff1a;报告当前进程快照。top&#xff1a;显示任务。kill&#xff1a;给一个进程发送信号。shutdown&#xff1a;关机或重启系统。 一个程序可以发动另一个程序被表述为一个父进程可以产生一个子进程&#xff0c;内核维护每个进程的信息&#xff0c;以此来保持事情有序…

【新版】软考 - 系统架构设计师(总结笔记)

个人总结学习笔记&#xff0c;仅供参考&#xff01;&#xff01;&#xff01;! →点击 笔者主页&#xff0c;欢迎关注哦&#xff08;互相学习&#xff0c;共同成长&#xff09; 笔记目录 &#x1f4e2;【系统架构设计系列】系统架构设计专业技能 计算机组成与结构操作系统信…

如何快速实现地源热泵远程监控

地源热泵远程监控解决方案 一、项目背景 山东省潍坊市盛世花园小区地源热泵项目是一个先进的供暖与制冷系统&#xff0c;旨在为整个小区提供高效且节能的温控服务。该系统主要由地下管道网络、地源热泵单元以及室内分配系统组成。 针对现有的地源热泵系统的管理和监控问题&a…

1162字符串逆序

一&#xff1a;题目 二.思路分析 1.如果不用递归&#xff0c;可以输入字符串后&#xff0c;再逆序输出&#xff0c;但是题目要求使用递归 2.使用递归&#xff1a; 2.1输入字符&#xff0c;直到输入的字符是‘&#xff01;’&#xff0c;停止输入&#xff0c;否则继续输入&…

Redis数据一致解决方案

文章目录 前言技术积累查询缓存业务流程更新缓存业务流程 更新缓存问题解决方案写在最后 前言 当前的应用服务很多都有着高并发的业务场景&#xff0c;对于高并发的解决方案一般会用到缓存来降低数据库压力&#xff0c;并且还能够提高系统性能减少请求耗时&#xff0c;比如我们…

AndroidStudio无法新建Java工程解决办法

我用的 AS 版本是 Android Studio Giraffe | 2022.3.1 Build #AI-223.8836.35.2231.10406996, built on June 29, 2023 以往新建工程都是 New project >> Empty Activity &#xff0c; 有个选择 Java 还是 Kotlin 语言的选项&#xff0c; 之后会默认生成一个 MainActi…

系列三、安装RocketMQ(单机版)

一、安装RocketMQ&#xff08;单机版&#xff09; 1.1、前置准备 通过前面系列一、MQ简介、系列二、RocketMQ简介的文章我们知道RocketMQ是用Java语言编写的&#xff0c;所以在安装RocketMQ之前&#xff0c;需要保证Linux中的JDK是已经安装好了的&#xff0c;要不然无法安装&a…

java流浪动物保护系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java Web 流浪动物保护系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql…

3.java——继承及拓展(保姆级别教程,万字解析,匠心制作)

三.继承——节省了共有属性和方法的代码&#xff1a;语法 class Student extends Person 1.继承基础 1.继承首先是面向对象中非常强的一种机制&#xff0c;他首先可以复用代码&#xff08;name ,age&#xff09;&#xff0c;让我们的获得了Person全部功能和属性&#xff0c;只…

使用keytool查看Android APK签名

文章目录 一、找到JDK位置二、使用方法2.1 打开windows命令行工具2.2 查看签名 三、如何给APK做系统签名呢? 一、找到JDK位置 安卓AS之后&#xff0c;可选择继续安装JDK&#xff0c;如本文使用amazon版本默认位置&#xff1a;C:\Users\66176.jdks\corretto-1.8.0_342可通过自…

智能优化算法应用:基于北方苍鹰算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于北方苍鹰算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于北方苍鹰算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.北方苍鹰算法4.实验参数设定5.算法结果6.…

数据库之MySQL的介绍

操作系统&#xff1a; windows&#xff1a;win10、win11、win7、windows Server2016 Linux/Unix &#xff1a;红帽&#xff08;RedHat&#xff09;、Bebian、SUSE MacOS Linux系统&#xff1a;CantOS&#xff08;yum、dnf&#xff09;、Ubuntu&#xff08;apt、apt—get&am…