跳到主要内容
版本: 7.x

优点 & 缺点

当考虑是否使用一个项目时,理解项目开发者在构建它时所做的权衡是很有用的。它明确尝试为您解决哪些问题,又忽略了哪些问题?该项目当前的局限性以及人们遇到的常见问题是什么?我们认为,当您为您的项目做出重要的技术决策时,您应该对这些问题有所了解,因此我们在此以“优点”(您应该使用它的原因)和“缺点”(您不应该使用它的原因)的形式,尽我们所能地记录了这些问题的答案。如果您认为我们遗漏了重要的信息,请提交一个 pull request

优点

  • React Navigation 本身不包含任何原生代码,但我们使用许多原生库,如 ScreensReanimatedGesture Handler 等来实现高性能的动画和手势。根据导航器的不同,许多 UI 组件是用 JavaScript 在 React Native 原生组件之上编写的。这有很多好处
    • 轻松 OTA 更新
    • 可调试
    • 可自定义
  • 大多数应用程序都会大量自定义导航,要使用包装原生导航的 API 来做到这一点,您需要编写大量的原生代码。在 React Navigation 中,我们提供了完全用 JavaScript 编写的导航器(例如 Stack Navigator)和在平台导航原生组件之上实现的导航器(例如 Native Stack Navigator)。这使您可以根据您是想要原生平台行为还是完全的可自定义性,来选择适合您用例的导航器。
  • 可以编写您自己的导航器,使其与标准导航器干净地集成,或者 fork 标准导航器并创建您自己的版本,以获得您在应用程序中想要的确切外观和感觉。

缺点

  • 改进可能需要破坏性更改。我们正在努力实现“使容易的事情容易,使困难的事情可能”,这可能需要我们有时更改 API。
  • 一些导航器不直接使用 iOS 和 Android 上的原生导航 API;相反,它们使用最底层的部分,然后在之上重新创建 API 的一些子集。这是一个有意识的选择,目的是使用户可以自定义导航体验的任何部分(因为它是在 JavaScript 中实现的),并且能够调试他们遇到的问题,而无需学习 Objective C / Swift / Java / Kotlin。
    • 如果您需要完全的平台行为,您可以选择使用使用原生平台组件的导航器(例如 Native Stack Navigator),或者使用提供完全原生导航 API 的其他导航库(例如 React Native Navigation)。
  • 还有其他您可能需要考虑的局限性,详见 局限性