@amazon-devices/react-native-worklets是React Native多线程库,为Reanimated的性能功能提供基础支持。您可以在多个线程和运行时上并行执行JavaScript代码,从而实现流畅的动画和交互,避免阻塞主线程。
什么是Worklet?
Worklet是可序列化并在不同线程上执行的JavaScript函数。当您使用'worklet'指令标记函数时,Babel插件会将其转换为可序列化的格式,以便复制并在用户界面线程或其他自定义运行时上执行。
主要功能
- 多线程:在不同的线程(用户界面线程、自定义worklet运行时)上执行JavaScript代码
- 零副本序列化:在线程间高效传输函数,且无性能开销
- Babel插件集成:自动将标记的函数转换为worklet
- 运行时创建:为特定工作负载创建自定义JavaScript运行时
- 无缝集成:与Reanimated无缝协作,支持动画和手势处理
文档
查看专门的文档页面,了解有关此库、API参考等的信息:https://docs.swmansion.com/react-native-worklets/(仅提供英文版)。安装
-
在
package.json文件中添加JavaScript库依赖项。 -
将
@amazon-devices/react-native-worklets/plugin插件添加到babel.config.js -
执行
npm start -- --reset-cache命令,清理Metro bundler缓存。 -
使用
npm install命令重新安装package-lock.json文件。 - 如需更多详细信息,可参考外部文档的安装部分(仅提供英文版)。
示例
演示如何创建和使用自定义worklet运行时,以进行并行处理。API
Vega上的Worklet库提供了全面的多线程、内存管理和实用函数API。线程
内存
实用工具
Vega上的例外情况
Vega上的Worklets库在API支持方面有一些例外。此部分将介绍这些例外情况。- Vega目前不支持Feature标记
- Vega目前不支持Bundle标记

