发布级别
React Native 社区能够尽早采用尚未完成设计和实现的新功能,甚至在它们包含在稳定版发布之前。这种方法被称为发布级别。
您可以配置 React Native 的发布级别,以便您的 React Native 实例使用设置为 EXPERIMENTAL、CANARY 或 STABLE 模式的 Feature Flags 进行初始化。
注意
这种方法类似于 React 中的 Canary 和 Experimental 发布,但有一个关键区别:无论发布级别如何,使用的 React JS 和 React Native 代码是相同的版本。
React Native 也不使用 @canary 或 @experimental NPM 标签,因为发布级别适用于 React Native 的稳定版和 nightly 版发布。
此外,将发布级别设置为 EXPERIMENTAL 或 CANARY不会导致使用 react@nightly 或 react@canary,这是因为 react-native 使用 React 版本的方式(您可以在此处阅读更多相关信息)。
何时使用每个发布级别
STABLE (稳定版):- 适用于所有不需要提前访问未发布功能的生产应用程序和库。
- 这是稳定版和 nightly 版发布的默认级别。
CANARY (金丝雀版):- 如果您是框架作者、高级应用程序开发人员,或需要测试或采用在稳定版发布之前的新功能,请使用此版本。
- 不推荐用于生产或面向用户的应用程序。
EXPERIMENTAL (实验版):- 仅用于测试和提供开发早期阶段新功能的反馈。
- 不推荐用于生产或面向用户的应用程序。
如何使用 Canary & Experimental 初始化 React Native
Android
DefaultNewArchitectureEntryPoint 类现在有一个 releaseLevel 属性(默认为 STABLE)。
功能标志系统使用此属性为所选的发布级别选择相应的功能标志集。
用法示例
DefaultNewArchitectureEntryPoint.releaseLevel = ReleaseLevel.CANARY
DefaultNewArchitectureEntryPoint.load()
构建系统为每个发布级别生成不同的功能标志覆盖类,确保为每个阶段启用正确的功能。
iOS
RCTReactNativeFactory 类现在有一个接受 releaseLevel 参数的初始化器。功能标志设置使用此参数选择正确的功能标志覆盖。
用法示例
[[RCTReactNativeFactory alloc] initWithDelegate:delegate releaseLevel:Canary];
系统确保每个应用程序实例只有一个发布级别处于活动状态,如果创建了具有不同发布级别的多个工厂,则会崩溃。