发布级别
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
React Native 让社区能够在单个新功能的设计与实现接近完成时就采用它们,甚至在它们被纳入稳定版发布之前。这种方法被称为发布级别(release levels)。
你可以配置 React Native 的发布级别,这样你的 React Native 实例在初始化时会将 Feature Flags 设置为 EXPERIMENTAL、CANARY 或 STABLE 模式。
此方法类似于 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 参数的初始化方法。特性标志设置会使用此参数选择正确的特性标志覆写配置。
- ObjectiveC
- Swift
[[RCTReactNativeFactory alloc] initWithDelegate:delegate releaseLevel:Canary];
let factory = RCTReactNativeFactory(delegate: delegate, releaseLevel: RCTReleaseLevel.Canary)
系统确保每个应用实例仅激活一个发布级别,如果创建了具有不同发布级别的多个工厂实例,应用将会崩溃。