跳至主内容

React Native 开源更新(2019年3月)

· 1 分钟阅读
Christoph Nakazawa
Christoph Nakazawa
Former Engineer @ Facebook
非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

2018年第四季度,在决定加大对 React Native 开源社区的投入后,我们公布了 React Native 开源路线图

在首个里程碑阶段,我们专注于识别和改进社区中最显著的问题。目标包括减少积压的拉取请求、缩小项目范围、识别主要用户问题以及建立社区管理准则。

过去两个月取得的进展超出预期。以下是详细进展:

拉取请求

构建健康社区的关键在于快速响应代码贡献。过去几年我们降低了对社区贡献的评审优先级,导致积压了280个拉取请求(截至2018年12月)。首个里程碑阶段,我们将未处理请求减少至约65个。同时每日新增请求从3.5个增至7个,这意味着最近三个月我们处理了约 600个拉取请求

我们合并了 近三分之二 的请求,剩余三分之一直接关闭。关闭原因包括内容过时、质量不佳或不必要扩大项目范围。已合并的请求主要修复了错误、提升跨平台兼容性或引入新功能。值得注意的贡献包括类型安全改进以及正在进行的 AndroidX 支持工作。

Facebook 内部直接运行 React Native 的 master 分支,因此所有变更在进入正式版本前都经过测试。在所有合并的拉取请求中,仅六个引发了问题:其中四个仅影响内部开发,两个在候选发布阶段就被发现。

社区最显著的贡献之一是 新版“RedBox”错误界面。这充分体现了社区如何让开发者体验更加友好。

Lean Core

React Native 当前涉及范围过广,包含许多 Facebook 内部较少使用的未维护抽象层。我们正努力缩小范围,使 React Native 更轻量,同时让社区更好地维护 Facebook 较少使用的抽象层。

首个里程碑期间,我们邀请社区协助 Lean Core 项目。响应非常热烈,进展速度甚至让我们应接不暇。查看不到一个月完成的工作成果

最令人振奋的是,维护者们积极修复了长期存在的问题、补充测试用例并支持了期待已久的功能。这些模块获得的社区支持远超 React Native 内部时期,充分证明这是社区发展的重要一步。典型案例如 WebView,分离后收到大量拉取请求;以及 CLI 工具现由社区成员维护,获得了急需的改进和修复。

主要用户问题

去年12月,我们向社区征询了对 React Native 的不满之处。我们汇总了反馈,并对每个问题都做出了回应。幸运的是,社区面临的许多问题在 Facebook 内部也同样存在。在下一个里程碑中,我们计划解决其中一些主要问题。

其中投票最高的问题之一就是升级到新版本 React Native 的开发者体验。遗憾的是,由于我们直接从 master 分支运行 React Native,因此自身并未遇到此问题。值得庆幸的是,社区成员已经主动站出来解决这个问题:

0.59 版本发布

如果没有 React Native 社区的帮助,特别是 Mike GrabowskiLorenzo Sciandra,我们无法完成版本发布。我们希望改进发布管理流程,并计划从今以后更深入地参与:

  • 我们将与社区成员合作,为每个主要版本撰写博客文章

  • 当开发者升级到新版本时,我们将在 CLI 中直接显示破坏性变更

  • 我们将缩短版本发布所需的时间。我们正在探索增加自动化测试的方法,并制定改进的手动测试计划

这些计划中的许多内容将被纳入即将发布的 React Native 0.59 版本中。0.59 版本将包含 React Hooks、适用于 Android 的新版 64 位 JavaScriptCore,以及众多性能和功能改进。该版本目前作为候选版本发布,预计将在未来两周内稳定。

后续计划

在接下来的两个月里,我们将继续管理拉取请求以确保进度,同时开始减少未解决的 GitHub issue 数量。我们将通过精简核心项目继续缩小 React Native 的涉及范围。我们计划解决5个顶级社区问题。在敲定社区指南后,我们将把注意力转向官方网站和文档。

我们非常激动能在三月份于 Facebook 伦敦办公室接待来自社区的十多位贡献者,共同推动这些工作。我们很高兴您正在使用 React Native,并希望您能看到并感受到我们在2019年所做的改进。几个月后我们将带来下一次更新,而在此期间,我们_将继续合并您的拉取请求!_ ⚛️✌️