首页 > 其他分享 >React Spring实战之API以及animated 组件的运用

React Spring实战之API以及animated 组件的运用

时间:2024-10-20 17:21:08浏览次数:1  
标签:动画 Spring React InferFrom API spring 组件 属性

React Spring实战之API以及animated 组件的运用

小熊码农 2024-04-20 109 浏览 #前端 江河入海,知识涌动,这是我参与江海计划的第7篇。
API
react-spring库中与动画相关的API支持两种不同的使用渲染道具和react钩子的方法。接下来,我们将介绍react hook的一些动画相关API: react spring hook创建的spring动画的基本配置可以通过usestate、useref等进行外部控制,以更改动画。动画过渡属性(从、到)也可以设置为状态控制,但无法实现过渡效果,并且变换非常严格 动画定义API(负责创建动画) Usespring:创建一个简单的动画弹簧 使用弹簧:创建一组同时执行的弹簧 Usetrail:创建一组按顺序执行的弹簧(创建的弹簧属性一致) 使用转换:在生命周期发生变化时添加动画,如已安装/未安装的组件 Usechain:用于自定义spring执行顺序 动画绘制API(负责动画执行) 动画:是实现react spring动画效果的基础。通过上述API生成的所有弹簧必须通过动画标记才能绘制动画(动画的执行器) 插值:将spring中执行过程的转换属性值与动画XXX绑定(添加到属性,如style\classname)、数据映射或属性值修改(绑定动画和执行器)进行比较 默认配置 配置:弹簧属性的默认值(影响动画的速度、加速度、延迟和错误等基本属性)(官方示例) to 属性可以是异步函数(过渡效果从上到下依次实现)
to 属性可以是数组(过渡效果从左到右依次实现)
to属性的值可以与其他属性平级(props的其他属性)
useSpring
Usespring用于创建单独的动画,这是API其余部分的基础。它接收包含动画属性的对象或返回值为对象作为参数的箭头函数 参数为object 接收usespringprops类型的对象 返回animatedvalue类型的对象 可以通过外部usestate控制动画属性的更改。通过ref修改状态并调整重置和其他属性将执行相应的动画
参数是一个箭头函数,返回对象 arrow函数返回usespringprops类型的对象 返回[animationvalue,set,stop]的数组 动画属性的更改只能通过set函数重新传递。可以使用“停止”方法提前结束动画 返回值为对象时 useSpring 返回值为数组 useSprings useTrail xxx 为from和to属性中返回的属性
animated 组件
在react弹簧挂钩中使用动画相对简单。您可以直接使用animated XXX导出要从animated中使用的HTML标记,然后将spring直接分配给属性,例如style 无需附加任何属性,直接使用传入from和to的值作为style的属性。 springs当生成spring动画数组时,通过map解构获取单个spring,然后将值添加给animated。 通过interpolate获取传入的参数,返回新的style属性
    1 2 3 4 5 6 7 8 9   const spring = useSpring({...})   <animated.div style={spring}></animated.div> <animated.div style={{transfrom: spring.xxx.interpolate(x=>`translate2d(${x}px, 0)`)}}></animated.div>   const springs = useSpring(5, [{...}]) // springs.map((spring, index) => (<animated.div key={index} style={{...spring}} />))} springs.map((spring, index) => (<animated.div key={index} style={{transfrom: spring.xxx.interpolate(x=>`translate2d(${x}px, 0)`)}} />))}     UseTransitionProps 生命周期动画属性与返回值
from的功能与initial的功能相同,initial是enter的起始值。但是,“初始”仅在首次加载组件时有效,而“自”在每次装入组件时有效。初始优先级较高
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31   interface UseTransitionProps { // 动画弹簧基本属性 config?: SpringConfig | ((item: TItem) => SpringConfig) // 如果为true,key值相同的Spring将被重用 unique?: boolean default false // 动画开始前的延迟(毫秒),每次进入/更新和离开时加起来 trail?: number // 动画开始的起始属性(每次mounted是enter的起始值) from?: InferFrom<DS> | ((item: TItem) => InferFrom<DS>) // 组件mounted的动画属性 enter?: InferFrom<DS> | InferFrom<DS>[] | ((item: TItem) => InferFrom<DS>) // 组件unmounted的动画属性 leave?: InferFrom<DS> | InferFrom<DS>[] | ((item: TItem) => InferFrom<DS>) // 组件的属性更新时的动画属性(Item的值变化时,在enter之后启动,可以通过hook控制state变化) update?: InferFrom<DS> | InferFrom<DS>[] | ((item: TItem) => InferFrom<DS>) // 动画初始值,第一次加载的值(只有第一次mounted有效) initial?: InferFrom<DS> | ((item: TItem) => InferFrom<DS>) | null // 在组件销毁时调用 onDestroyed?: (isDestroyed: boolean) => void }   interface UseTransitionResult { // items的单个项,如果items是boolean则为boolean的值 item: TItem // key值,如果不设置为null,则默认key=>key自动生成 key: string // 当前值状态 inital、enter、leave、update state: State // 动画属性 props: AnimatedValue }

标签:动画,Spring,React,InferFrom,API,spring,组件,属性
From: https://www.cnblogs.com/sexintercourse/p/18487531

相关文章

  • Spring 项目返回值枚举类编写技巧
    Spring项目返回值枚举类编写技巧在Spring项目中,使用枚举类来统一管理返回值和状态码是一种非常优雅的实现方式。这不仅能提升代码的可读性和维护性,还能避免在代码中硬编码字符串或数字来表示状态码。本文将以ReturnCodeEnum为例,介绍如何编写和使用枚举类。1.枚举值......
  • WebRTC JavaScript API使用和介绍
    目录API列表API列表WebRTCJavaScriptAPI是WebReal-TimeCommunication(WebRTC)技术的核心,它允许网页应用实现浏览器间的实时音频、视频通信及数据共享,无需依赖插件。navigator.mediaDevices.getUserMedia()作用:请求访问用户的媒体设备(如摄像头和麦克风)。代码示例......
  • 基于Spring Boot的高校运动会竞赛管理系统 毕设-附源码97766
    目 录摘要1绪论1.1研究背景1.2 研究意义1.3开发技术1.3.1SpringBoot框架1.3.2Vue框架1.3.3MySQL数据库2系统分析2.1可行性分析2.2总体设计原则2.3 业务流程分析2.3.1用户登录流程2.3.2 删除信息流程2.4 系统角色分析2.5 系统......
  • springboot+vue安财学科竞赛“寻队友”【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景在当今高等教育体系中,学科竞赛已成为培养学生创新精神、实践能力和团队协作能力的有效途径。安徽财经大学(简称“安财”)作为国内知名财经类高校,一直致力于通过多样化的学科竞赛活动激发学生的学术热情与探索精神。然而,在实际操作中,学生......
  • springboot+vue安康旅游网站【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景在当今社会,旅游业已成为推动地方经济、提升城市形象的重要力量。安康,这座位于秦岭巴山之间的美丽城市,以其丰富的自然资源、深厚的历史文化底蕴和独特的民俗风情,吸引了众多国内外游客的目光。然而,随着旅游业的快速发展,游客对于旅游信息......
  • springboot+vue安检人员执勤信息管理系统【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景随着社会的快速发展和人们安全意识的日益增强,安检工作已成为维护公共安全、保障社会秩序的重要环节。在各类交通枢纽、公共场所及特殊活动现场,安检人员承担着不可替代的责任,他们的执勤效率与管理水平直接关系到公共安全的防范能力。然......
  • Springboot计算机毕业设计EHR管理系统j5tnf
    Springboot计算机毕业设计EH本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能:公告信息,部门,岗位,员工,员工绩效,绩效考核,员工工资,意见反馈开题报告内容一、课题背景与意义随着企业规模的扩大和......
  • Springboot计算机毕业设计安稳汽车租赁管理系统mld41
    Springboot计算机毕业设计安本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能:用户,汽车品牌,汽车分类,汽车租赁,租赁订单,消息通知,还车记录,车辆续租开题报告内容一、项目背景与意义随着经济的快......
  • Springboot计算机毕业设计erpmes集成系统934a5
    Springboot计算机毕业设计erp本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能:部门,员工,产品分类,产品信息,入库登记,供应商,客户信息,出库登记,销售订单,采购订单开题报告内容一、课题背景与意义......
  • Springboot计算机毕业设计班级科创学分统计分析系统9e47q
    Springboot计算机毕业设计班本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能:班级,教师,学生,科创学分,项目类别,创新项目,学分申请开题报告内容一、选题背景及意义随着科技的不断进步和社会的发展......