发布级别
React Native 允许社区在新的功能设计和实现接近完成时,甚至在它们被包含在稳定版本中之前,就能立即采用这些功能。这种方法被称为发布级别。
您可以配置 React Native 的发布级别,以便您的 React Native 实例会以 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
参数的初始化器。功能标志设置使用此参数选择正确的功能标志覆盖。
用法示例
[[RCTReactNativeFactory alloc] initWithDelegate:delegate releaseLevel:Canary];
系统确保每个应用实例只有一个发布级别处于活动状态,如果创建了多个具有不同发布级别的工厂,则会崩溃。