仓库与架构总览
1. Monorepo 结构与职责边界
React Native 当前仓库是典型 monorepo,核心特征:
- 根
package.json使用 Yarn Workspaces 管理packages/*与private/* packages/react-native是核心 runtime 与跨语言桥接实现packages/gradle-plugin承载 Android 构建接入能力packages/react-native-codegen与packages/react-native/scripts/codegen形成代码生成链路packages/rn-tester作为核心功能验证与集成演示应用
源码依据:
- 根工作区定义:
package.json的workspaces - 技术文档索引:
__docs__/README.md
2. React Native 在“系统分层”上的设计
从 __docs__/README.md 可见,RN 官方将系统拆为:
- 运行时层:Host/Instance、UI/Fabric、Native Modules/TurboModules、JS Runtime
- 构建层:Android / iOS / C++ / JavaScript(Metro)
- 测试层:JS、iOS、Android、C++、E2E(含 Fantom)
这不是单纯“JS 框架”,而是多语言 runtime + build orchestration 的组合系统。
3. 当前版本阶段的关键信号
3.1 New Architecture 已从“可选”走向“默认”
从 Android 与 iOS 默认入口实现可看到:
DefaultNewArchitectureEntryPoint.load()默认开启TurboModules + Fabric + BridgelessDefaultReactNativeHost中关闭新架构会报错(提示 0.82 起不再支持)- iOS Pod 集成逻辑强制写入
RCT_NEW_ARCH_ENABLED=1、RCT_FABRIC_ENABLED=1
这代表讨论中不应再把 New Architecture 当“实验功能”,而应当作为主线架构来表达。
3.2 引擎策略明确偏向 Hermes
iOS Pod 脚本与 Android Gradle 任务均以 Hermes 为默认路径,JSC 已移动到社区维护路径(third-party)。
4. 开篇可以这样概括应该怎么讲
推荐表达:
“React Native 现在是一个以 New Architecture 为主线的跨平台 runtime 工程。它通过 Monorepo 把 JS API、C++ 渲染层、iOS/Android 构建系统、Codegen 和 Autolinking 串成统一流水线,Hermes + Fabric + TurboModules + Bridgeless 是当前主路径,而不是可选附加项。”
5. 易错点
- 还在讲“Bridge 是核心未来方向”(过时)
- 把 RN 只当“JS + Native Modules”来理解(忽略 C++ 与构建链)
- 忽略 codegen/autolinking 对生态库接入的决定性作用