React | React的过渡动画

news2025/1/19 14:25:51

✨ 个人主页:CoderHing

🖥️ React.js专栏:React的过渡动画
🙋‍♂️ 个人简介:一个不甘平庸的平凡人🍬

💫 系列专栏:吊打面试官系列  16天学会Vue  11天学会React  Node专栏

🍀 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️

👉 你的一键三连是我更新的最大动力!❤️

❤️ 本文约 2000 字,预计阅读需要 15 分钟 ❤️


目录

一、React的过渡动画

react-transition-group介绍

react-transition-group主要组件

二、CSSTransitons使用

CSSTransition

三、常见的属性设置

CSSTransition常见属性

四、SwitchTransition

SwitchTransition

五、TransitionGroup

TransitionGroup


一、React的过渡动画

react-transition-group介绍

  • 我们想要给一个组件的显示和消失添加某种过渡动画 可以很好的增加用户体验

  • 我们可以通过原生的CSS来实现这些过渡动画 React社区为我们提供了react-transition-group用来完成过渡动画

  • React曾为开发者提供过动画插件 react-addons-css-transition-group 后由社区维护 形成了现在的 react-transitiongroup

    • 这个库可以帮助我们方便的实现组件的 入场 和 离场 动画 使用时需要进行额外的安装

  • react-transition-group本身非常小 不会为我们应用程序增加过多的负担

react-transition-group主要组件

  • react-transition-group主要包含四个组件:

  • Transition

    • 该组件是一个和平台无关的组件

    • 在开发中 我们一般是结合CSS来完成样式 所以比较常用的是CSSTransition

  • CSSTransition

    • 开发中 通常使用CSSTransition来完成过渡动画效果

  • SwitchTransition

    • 两个组件显示和隐藏切换时 使用该组件

  • TransitionGroup

    • 将多个动画组件包裹在其中 一般用于列表中元素的动画

二、CSSTransitons使用

CSSTransition

  • CSSTransition是基于Transition组件构建的

  • CSSTransition执行过程中 有三个状态:appear、enter、exit

  • 它们有三种状态 需要定义对应的CSS样式:

    • 第一类 开始状态:对应的类是-appear、-enter、exit

    • 第二类:执行动画:对应的类是-appear-active、-enter-active、-exit-active

    • 第三类:执行结束:对应的类是-appear-done、-enter-done、-exit-done

  • CSSTransition常见对应的属性:

  • in:触发进入或者退出状态:

    • 添加了unmountOnExit={true} 那么该组件会在执行退出动画结束后被移除掉

    • 当in为true时 触发进入状态 会添加-enter -enter-acitve的class开始执行动画 当动画执行结束后 会移除两个class 并且添加-enter-done的class

    • 当in为false时 触发退出状态 会添加-exit、-exit-active的class开始执行动画 当动画执行结束后 会移除两个class 并且添加-enter-done的class

    •  

三、常见的属性设置

CSSTransition常见属性

  • classNames:动画class的名称

    • 在编写css时 对应的class名称:比如card-enter、card-enter-active、card-enter-done

  • timeout:

    • 过渡动画的时间

  • appear:

    • 是否在初次进入添加动画(需要和in同时为true)

  • unmountOnExit:退出后卸载组件

  • CSSTransition对应的钩子函数:主要为了检测动画的执行过程 来完成一些JavaScript的操作

    • onEnter:在进入动画之前被触发

    • onEntering:在应用进入动画时被触发

    • onEntered:在应用进入动画结束后被触发

  • 更多属性可参考官网

四、SwitchTransition

SwitchTransition

  • SwitchTransition可以完成两个组件之间切换的炫酷动画:

    • 如我们有一个按钮需要在on和off之间切换 我们希望看到on先从左侧退出 off再从右侧进入

    • 这个动画在vue中被称之为 vue transition modes

    • react-transition-group中使用SwitchTransition来实现该动画

  • SwitchTransition中主要有一个属性:mode,有两个值

    • in-out:表示新组件先进入 旧组件再移除

    • out-in:表示就组件先移除 新组件再进入

  • 如何使用SwitchTransition呢?

    • SwitchTransition组件里面要有CSSTransition或者Transition组件 不能直接包裹你想要切换的组件

    • SwitchTransition里面的CSSTransition或Transition组件不再像以前那样接受in属性来判断元素是何种状态,取而代之的是key属性

五、TransitionGroup

TransitionGroup

当我们有一组动画时 需要将这些CSSTransition放入到一个TransitionGroup中来完成动画

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Grafana之Clock Panel使用(06)

Clock Panel可以用来显示当前(各国)时间或用于倒计时,并支持每秒更新一次。 Clock plugin for Grafana | Grafana Labs Clock Panel也是Grafana Labs提供,但并非Native,需自行安装,安装命令如下: # grafana-cli plugins install grafana-clock-panel # systemctl …

前端面试题 — — vue篇

前端面试笔记之vue篇 前言1.数据双向绑定原理⭐⭐⭐2. VUE生命周期⭐⭐⭐3.组件之间如何传值⭐⭐⭐4.路由之间如何传参⭐5.谈一谈VUEX⭐⭐6.如何解决VUEX页面刷新数据丢失问题?⭐⭐7.computed和watch的区别?⭐⭐⭐8.如何封装axios?⭐9.Route和…

APP和小程序共同塑造现代化政务服务

随着移动互联网的飞速发展,政务服务也开始向移动端转移,政务App和小程序结合,可以使政府更好地实现数字化转型和提供优质的政务服务。本文将探讨政务App和小程序的结合优势,以及如何推进政务App和小程序的发展。 移动政务服务应用…

RTSP/RTP on TCP 协议抓包记录

仅做记录,无他。 RTSP OPTIONS 客户端发送: 服务端响应 RTSP DESCRIBE 客户端发送 服务端响应 RTSP SETTUP 客户端发送请求 服务端响应 RTSP PLAY 客户端发送请求 服务端响应 RTP包 这个比较复杂,得好好解析&#xff0…

Git 解决missing Change-Id in message footer

ERROR: commit b007456: missing Change-Id in message footer 无论是linux 还是 window 出现这个,提示都是一样的,按照提示执行就好,网上基本都是这么说的,有的基本都是抄来抄去。 window 遇到这个问题解决步䠫: …

数学天才陶哲轩主持白宫生成式AI工作组,李飞飞、Hassabis发表演讲

夕小瑶科技说 分享 来源 | 新智元 最近,「数学天才」陶哲轩表示,自己将领导白宫生成式人工智能工作组,就当前AI评估并收集意见。在陶哲轩看来,加入工作流的ChatGPT在数学专业领域中,并没有太多增值。 近来&#xff0c…

Windows 环境解压 zip 压缩包乱码问题

前言 最近在接受他人上传的 ZIP 压缩包时,发现解压后文件名出现了乱码,记得自己很久以前似乎把系统的编码改为了 UTF,所以盲猜是压缩包发送人的系统使用了 GBK 编码,出现了错误。 正文 探索 搜了一下,发现了知乎上一…

360°VR全景图片,探索未知,畅游全景

随着科技的不断发展,人们对于视觉的需求越来越高,单一平面的图片已经无法满足人们的需要。360VR全景图片的出现填补了这个空白,它以其全景视角和互动体验,为我们带来了一场视觉盛宴。下面就让我们一起来探讨一下360VR全景图片的特…

网易云商·七鱼智能客服自适应 ProtoStuff 数据库缓存实践

需求背景 目前,网易云商七鱼智能客服数据库缓存使用了 spring-data-redis 框架,并由自研的缓存组件进行管理。该组件使用 Jackson 框架对缓存数据进行序列化和反序列化,并将其以明文 JSON 的形式存储在 Redis 中。 这种方式存在两个问题&…

(数字图像处理MATLAB+Python)第八章图像复原-第三、四节:图像复原代数方法和典型图像复原方法

文章目录 一:图像复原代数方法(1)无约束最小乘方复原(2)约束复原 二:典型图像复原方法(1)逆滤波复原A:概述B:程序 (2)维纳滤波复原A&a…

【C语言】负数取模、取余

文章目录 一. 关于“取整”1. 向0取整2. 向负无穷取整3. 向正无穷取整4. 四舍五入式的取整 二. 关于“取模”的本质三. 取余和取模的区别 一. 关于“取整” 首先谈谈关于数学取整的问题 1. 向0取整 C中的除法和取整规则都是向0取整,即所有小数都向 0 的方向取整&…

第四十一天学习记录:C语言进阶:笔试题整理Ⅱ

喝汽水问题&#xff1a;1瓶汽水1元&#xff0c;2个空瓶可以换一瓶汽水&#xff0c;输入价钱&#xff0c;可以喝多少汽水。&#xff08;编程实现&#xff09; #define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int main() {int money 0;int total 0;int empty 0;s…

手把手教配置vsc中的c\c++环境

为了防止你之前所看vsc配置C\C视频或者教学不成功的残留影响&#xff0c;这边开始会对vsc进行一次卸载和删除缓存 打开控制面板--点击程序--点击卸载--卸载vsc 显示效果如下 点击是 上面三部完成vsc卸载&#xff0c;接下完成残留卸载 打开你的c盘&#xff0c;如图 点击进去&…

Vue3-黑马(十四)

目录&#xff1a; &#xff08;1&#xff09;vue3-进阶-router-令牌-前端路由 &#xff08;2&#xff09;vue3-进阶-router-令牌-前端路由 &#xff08;3&#xff09;vue3-进阶-pinia1 &#xff08;4&#xff09;vue3-进阶-pinia2 &#xff08;1&#xff09;vue3-进阶-rout…

vite3+vue3 项目打包优化

现在很多小伙伴都已经使用 Vite Vue3 开发项目了&#xff0c;如果你是 “前端架构师” 或者是 “团队核心” 的话&#xff0c;不得不可考虑的一个问题就是性能优化。 说到前端性能优化&#xff0c;个人认为主要有两个方面&#xff1a; 减少文件的体积&#xff0c;体积小了加载…

SIEM日志管理解决方案

如果管理员想知道管理的网络中发生了什么&#xff0c;以便洞察潜在的威胁并在它们变成攻击之前阻止它们&#xff0c;那么管理员需要查看网络日志。企业网络中的设备如路由器、交换机、防火墙、服务器&#xff0c;业务运行的应用程序&#xff0c;如数据库和web服务器等。所有这些…

SpringBoot核心运行原理解析之-------@EnableAutoConfiguration

核心运行原理 我们通常在使用Spring Boot时&#xff0c;只需要引入对应的starters,Spring Boot启动时变回自动加载相关依赖&#xff0c;配置相应的初始化参数&#xff0c;以最快捷&#xff0c;简单的形式对第三方软件进行集成&#xff0c;这边是Spring Boot的自动配置功能。下…

【服务器数据恢复】EMC NAS中的虚拟机数据恢复案例

服务器数据恢复环境&#xff1a; 北京某公司的EMC NAS&#xff0c;总共有3个节点&#xff0c;每个节点配置12块STAT硬盘。 NAS中存放有vmware虚拟机&#xff08;WEB 服务器&#xff09;和视频文件。 虚拟机通过NFS协议共享到ESX主机&#xff0c;视频文件通过CIFS协议共享给虚拟…

Scala字符串常用函数

Scala字符串常用函数 1. 子字符串-substring2. 字符串切分-split3. 去掉首尾空格-trim4. 与数值之间的转换完整代码参考链接 Scala中的字符串为String类型&#xff0c;其实就是Java中的java.lang.String。其常用函数如下&#xff1a; 1. 子字符串-substring substring()方法返…

AUTOSAR NvM 同步机制

一、部分 NvM API 解释 &#xff08;1&#xff09;Std_ReturnType NvM_ReadBlock(NvM_BlockIdType BlockId,void* NvM_DstPtr) 把Nv Block中的数据copy到NvM_DstPtr指向的RAM中&#xff0c;NvM_DstPtr可以是临时RAM&#xff0c;也可以是永久RAM&#xff08;永久RAM即配置工具…