react-native-reanimated
一个提供 API 的库,可以极大地简化创建流畅、强大且可维护的动画的过程。
Android
iOS
tvOS
Web
Included in Expo Go
Bundled version:
~4.1.1
react-native-reanimated 提供了一个 API,大大简化了创建流畅、强大且易于维护的动画的过程。
Reanimated 使用的 React Native API 与 JavaScriptCore 的“远程 JS 调试”不兼容。要在使用
react-native-reanimated的应用中使用调试器,你需要使用 Hermes JavaScript 引擎 和 Hermes 的 JavaScript 检查器。
安装
🌐 Installation
Terminal
- npx expo install react-native-reanimated react-native-worklets无需额外配置。安装该库时,Reanimated Babel 插件 会自动在 babel-preset-expo 中配置。
🌐 No additional configuration is required. Reanimated Babel plugin is automatically configured in babel-preset-expo when you install the library.
用法
🌐 Usage
下面的示例展示了如何使用 react-native-reanimated 库来创建一个简单的动画。
🌐 The following example shows how to use the react-native-reanimated library to create a simple animation.
Using 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="toggle" 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, }, });
了解更多
🌐 Learn more
访问官方文档
获取有关 API 及其使用的完整信息。