Skip to content
目录

仓库与架构总览

1. Monorepo 结构与职责边界

React Native 当前仓库是典型 monorepo,核心特征:

  • package.json 使用 Yarn Workspaces 管理 packages/*private/*
  • packages/react-native 是核心 runtime 与跨语言桥接实现
  • packages/gradle-plugin 承载 Android 构建接入能力
  • packages/react-native-codegenpackages/react-native/scripts/codegen 形成代码生成链路
  • packages/rn-tester 作为核心功能验证与集成演示应用

源码依据:

  • 根工作区定义:package.jsonworkspaces
  • 技术文档索引:__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 + Bridgeless
  • DefaultReactNativeHost 中关闭新架构会报错(提示 0.82 起不再支持)
  • iOS Pod 集成逻辑强制写入 RCT_NEW_ARCH_ENABLED=1RCT_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 对生态库接入的决定性作用

MIT License.