Reference version

react-native-reanimated

一个提供 API 的库,它极大地简化了创建流畅、强大且易于维护的动画的过程。

Android
iOS
tvOS
Web
Included in Expo Go
Bundled version:
~4.2.1

For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.

react-native-reanimated 提供了一个 API,极大地简化了创建平滑、强大且易于维护的动画的过程。

Reanimated 使用了与 JavaScriptCore 的“远程 JS 调试”不兼容的 React Native API。要在应用中使用调试器并配合 react-native-reanimated,你需要使用 Hermes JavaScript 引擎适用于 Hermes 的 JavaScript 检查器

安装

Terminal
npx expo install react-native-reanimated react-native-worklets

不需要额外配置。安装该库时,babel-preset-expo 会自动配置 Reanimated Babel plugin

用法

下面的示例展示了如何使用 react-native-reanimated 库创建一个简单的动画。

使用 react-native-reanimated
import Animated, { useSharedValue, withTiming, useAnimatedStyle, Easing, } from 'react-native-reanimated'; import { View, Button, StyleSheet } from 'react-native'; export default function AnimatedStyleUpdateExample() { const randomWidth = useSharedValue(10); const config = { duration: 500, easing: Easing.bezier(0.5, 0.01, 0, 1), }; const style = useAnimatedStyle(() => { return { width: withTiming(randomWidth.value, config), }; }); return ( <View style={styles.container}> <Animated.View style={[styles.box, style]} /> <Button title="切换" onPress={() => { randomWidth.value = Math.random() * 350; }} /> </View> ); } const styles = StyleSheet.create({ container: { flex: 1, alignItems: 'center', justifyContent: 'center', }, box: { width: 100, height: 80, backgroundColor: 'black', margin: 30, }, });

了解更多

访问官方文档

获取有关 API 及其用法的完整信息。