C++ Turbo 原生模块
注意
这个文档仍然是实验性的,随着我们的迭代,细节会有变化。欢迎在工作小组内的讨论中分享你的反馈。
此外,它还包含几个手动步骤。请注意新架构尚未稳定下来,最终的开发者体验会继续迭代改善。我们正在努力开发工具、模板和库,以帮助你在新架构上快速入门,而不需要经历整个设置过程。
本指南将向您展示如何仅使用 C++ 实现 Turbo 原生模块,以便与任何支持的平台(Android、iOS、macOS 或 Windows)共享相同的实现。
在继续本指南之前,请阅读Turbo Native Modules部分。作为进一步参考,我们为 RNTester 应用准备了一个示例(NativeCxxModuleExample),并在我们的社区代码库中提供了另一个示例(run/pure-cxx-module)。
注意
使用 C++ Turbo 原生模块需要启用新架构。 要迁移到新架构,请按照迁移指南进行操作。
如何创建 C++ Turbo 原生模块
要创建 C++ Turbo 原生模块,您需要:
- 定义 JavaScript 规范。
- 配置 Codegen 以生成脚手架。
- 注册本地模块。
- 编写原生代码来完成模块的实现。
为新架构设置一个测试应用
第一步,创建一个新的应用程序:
npx react-native init CxxTurboModulesGuide
cd CxxTurboModulesGuide
yarn install
在 Android 上通过修改 android/gradle.properties
文件来启用新架构:
- newArchEnabled=false
+ newArchEnabled=true
在 iOS 上,在 ios
文件夹中运行 pod install
时启用新架构:
RCT_NEW_ARCH_ENABLED=1 bundle exec pod install