React 前端导航

react-spring 入门教程

React Spring 是一个用于创建动画效果的 React 库,它可以让你以声明式和可维护的方式创建流畅的动画效果,而不必保留复杂的 CSS 或 JavaScript。

以下是一个简单的入门教程,您可以在官方文档中了解更多内容:https://www.react-spring.dev/docs

1. 安装 React Spring

npm install react-spring

2. 创建动画作用于组件

import { useSpring, animated } from 'react-spring';
const animation = useSpring({ opacity: 1, from: { opacity: 0 } });
<animated.div style={animation}>Hello, world!</animated.div>

在这个例子中,我们使用 `useSpring` 钩子创建了一个动画,将元素的不透明度从 0 到 1 进行过渡。然后,我们将这个动画应用于一个 `animated.div` 组件中,以实现元素的动画效果。

animated 组件 ( 动画的执行者,必须添加才能执行已设置的动画 )

React Spring 还提供了许多其他的动画效果和配置选项,包括过渡、延迟、插值器和回调函数等。

3. Hook Api介绍

3.1 动画定义(包含5个钩子):

  • useSpring:创建一个单独的简单动画 Spring-从a→b移动数据的单个弹簧
  • useSprings:创建一组同时执行的 Spring-多个弹簧(不同),用于列表,每个弹簧从a→b移动数据
  • useTrail:创建一组依次执行的 Spring-多个弹簧(相同),一个弹簧在另一个弹簧之后/跟随
  • useTransition:添加组件 mounted/unmounted 等生命周期变化时的动画
  • useChain:用于自定义 Spring 执行顺序-将多个动画排队或连接在一起

3.2 默认配置config

弹簧属性 ( 影响动画的速度、加速度、延迟、误差等基本属性 ) 的默认值

重要参数解释:

// 弹簧质量:回弹惯性,质量越大惯性越大
mass?: number default 1
// 弹簧张力:影响整体速度,张力越紧速度越快
tension?: number default 170
// 摩擦力:可以与mass、tension的效果相互抵消
friction?: number default 26
// 动画开始的延迟
delay?: number
// 当duration大于0时,动画将在规定的时间范围内执行,一旦超过就结束动画;否则将一直执行到动画结束,没有时间限制
duration?: number default undefined | 0 ms
// 动画执行速度
velocity?: number default 0
// 当动画弹簧越过边界时,是否立即结束动画
clamp?: boolean default false
// 准确率
precision?: number default 0.01
// 缓动函数,默认是线性的,可以换成其他的如d3-ease(动画运行轨迹函数)
easing?: (t: number) => number default false

官方内置弹簧配置:

config.default { mass: 1, tension: 170, friction: 26 }
config.gentle { mass: 1, tension: 120, friction: 14 }
config.wobbly { mass: 1, tension: 180, friction: 12 }
config.stiff { mass: 1, tension: 210, friction: 20 }
config.slow { mass: 1, tension: 280, friction: 60 }
config.molasses { mass: 1, tension: 280, friction: 120 }

更多React组件可查看:React组件汇总

声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。邮箱:farmerlzj@163.com。 本站原创内容未经允许不得转载,或转载时需注明出处: 内容转载自: React前端网:https://qianduan.shop/blogs/detail/109

#react#动画

相关推荐

react中实现markdown文件读取展示

react中实现markdown文件读取展示

umi实践问题汇总--持续更新

在使用umi的过程中所遇到问题的记录汇总