跳至主要内容
版本: 6.x

Pitch & anti-pitch

在考虑是否使用某个项目时,了解项目开发人员在构建项目时所做的权衡非常有用。它明确地为你解决了哪些问题,而哪些问题它忽略了?该项目的当前限制是什么?人们常遇到的常见问题是什么?我们认为,在为你的项目做出重要的技术决策时,你应该对这些问题有答案,因此我们以“pitch”(为什么你应该使用它)和“anti-pitch”(为什么你应该不使用它)的形式记录了这些问题的答案,尽我们所能。如果你认为我们遗漏了重要信息,请提交拉取请求

Pitch

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

反驳

  • 改进可能需要重大更改。我们正在努力实现 "简化易事,使难事成为可能",这可能需要我们不时更改 API。
  • 一些导航器不直接使用 iOS 和 Android 上的原生导航 API;相反,它们使用最低级别的组件,然后在顶部重新创建 API 的子集。这是一个经过深思熟虑的选择,以便用户可以自定义导航体验的任何部分(因为它是在 JavaScript 中实现的),并且能够调试遇到的问题,而无需学习 Objective C / Swift / Java / Kotlin。
    • 如果您需要确切的平台行为,可以选择使用使用原生平台组件的导航器(例如 原生堆栈导航器),或者使用提供完全原生导航 API 的其他导航库(例如 React Native Navigation)。
  • 还有一些其他限制,您可能需要考虑,有关更多详细信息,请参阅 限制