新架构进展更新
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
大家好, 正如之前所宣布的:
2022年将成为开源领域的新架构之年。
如果您还没有时间了解 React Native 新架构(Fabric 渲染器和 TurboModule 系统),那么现在就是最佳时机!
我们想与社区分享一些举措和材料,确保每个人都能参与这项重要工作。
工作组
最近,我们在 GitHub 上成立了 React Native 新架构工作组,这是一个_仅供讨论_的仓库,旨在协调和支持新架构在整个生态系统中的推广。
我们设想这个工作组成为社区成员交流、分享想法和讨论新架构采用过程中挑战的空间。此外,我们将通过这个工作组分享信息和更新,确保整个过程的透明度。
为了保持讨论的专注性,我们决定将该工作组设为公开可读,但仅限批准的用户进行写入。
如果您希望加入讨论,可以填写此表格申请或提名您认为能为讨论增添价值的人选。
欢迎所有人申请参与讨论。
如同所有讨论平台,我们想再次强调尊重和接纳他人意见的重要性。如果您尚未阅读,请务必查看我们的行为准则。
迁移指南
经过多轮审核和反馈,我们终于合并了迁移指南(原名为_the Playbook_)。您可以在新架构工作组中找到它。
这份迁移指南将通过逐步指导,向您展示如何创建自定义 Fabric 组件或 TurboModule。同时,该指南还将演示如何调整您现有的应用或库以使用新架构。
此外,我们想提醒您关注我们网站上全新的架构章节。您可以在那里找到多篇深入解析 React Native 内部机制的文章。特别是Fabric 章节能帮助您理解新架构中的渲染流程。
最后,请考虑在工作组中分享您对这些文档的反馈。我们始终重视开发者意见,确保提供您最需要的内容。
未来几个月,我们将持续完善并添加更多文档来为您提供支持。
新架构模板
React Native 0.68.0 即将发布。此版本标志着新架构推广中的重要里程碑,因为它是首个在新应用模板中包含选择启用开关的版本。
这意味着您只需在模板中更改一行代码即可体验新架构。我们还为模板添加了详尽的注释和文档,确保您无需额外阅读即可开箱即用。我们希望通过减少代码量来帮助您更轻松地采用新架构。
在后续版本中,我们将持续更新模板,使其更加简洁易用。
要在各平台启用新架构,您可以:
-
在 iOS 平台:进入
ios文件夹执行RCT_NEW_ARCH_ENABLED=1 bundle exec pod install -
在 Android 平台:将
newArchEnabled属性设为true,具体方式任选其一:- 修改
android/gradle.properties文件中对应行 - 设置环境变量
ORG_GRADLE_PROJECT_newArchEnabled=true - 调用 Gradle 时添加
-PnewArchEnabled=true参数
- 修改
随后执行 yarn react-native run-android 或 run-ios 命令启动应用,即可运行启用了 Fabric 和 TurboModules 的新架构。
欢迎尝试此新模板,并请提交遇到的任何错误或异常行为。过去数月我们修复了许多难以察觉的构建错误,这离不开社区的持续测试与反馈。
第三方库生态
若没有第三方库作者和维护者的全面支持,社区将无法顺利迁移至新架构。
我们理解迁移过程的复杂性,也深知同时支持新旧架构用户的重要性。接下来数月,我们将重点协助库开发者完成迁移。
若您是库开发者,欢迎在新架构工作组发布状态更新,说明库的迁移进展。这既有助于吸引早期采用者,也能让我们发现潜在阻碍。
若您是库使用者,可在此提交迁移请求。当某库成为大量用户的迁移阻碍时,我们将主动联系维护者了解原因。
特别致谢 Software Mansion 团队:他们发布了支持双架构的 react-native-screens 新版,并通过博文(为 react-native-screens 引入 Fabric)分享了迁移经验,这些实践案例将为您的迁移提供宝贵参考。
版本发布
0.68 预发布版本已实践了上半年制定的改进版发布流程。
我们很高兴宣布 0.68 版本实现了:
-
成功建立内部轮值发布机制,这得益于改进的发布文档,有效降低了发布流程的"关键人风险"
-
启动合作伙伴副驾驶轮值机制讨论,此举将提升流程透明度,并指导合作伙伴明确投入方向
-
吸纳多位社区发布支持者与测试者。响应上半年征召后,众多贡献者挺身而出!测试反馈帮助我们修复了关键错误,尤其是新架构相关的回归问题,谨此向所有参与者致谢!
在 React Native 0.69 版本中,我们将持续优化这一流程,目标是与合作伙伴建立更早的发布信号机制,并引入联合领航员。一如既往,我们非常欢迎任何反馈。如果您希望作为版本测试者或支持者加入,请在此报名。
迈向以 Hermes 为默认引擎
新架构推广的关键点之一就是采用新的 JavaScript 引擎:Hermes。
在新版 React Native 架构中,我们将把 Hermes 设为默认引擎。这意味着所有新的文档和模板都会默认启用 Hermes。
请注意,我们将继续与社区合作,确保其他引擎(例如 JSC(JavaScript Core))得到支持。您仍然可以使用您想要的引擎,但必须显式禁用 Hermes。
为了提高 Hermes 的稳定性,我们正在努力改变其分发模式。具体而言,我们计划让 Hermes 的发布流程更贴近 React Native 的发布节奏。
这将使我们能够发布与 JS 引擎完全兼容的 React Native 版本。您无需再处理难以调试的运行时崩溃和 Hermes 兼容性问题。
此外,这将缩短获取 Hermes 改进功能和错误修复的周期,让我们能更及时响应 React Native 用户的需求。
未来几个月我们将分享更多相关信息。同时,欢迎您加入工作组讨论。
如果您尚未尝试 Hermes,现在正是最佳时机。请务必记录您遇到的任何问题或阻碍。
以上便是本次更新的全部内容。
特别感谢 Andrei、Aleksandar、Dmitry、Eli、Luna、Héctor 和 Neil 审阅本篇博文并为这些工作提供宝贵贡献。
我们期待阅读您的迁移故事。
