React Native:我应该使用哪个导航器?

React Native: Which navigator should I use?

我必须在 3 个月内构建一个相对较大的跨平台 (iOS & Android) 应用程序。

到目前为止,关于 React Native,我只有 NavigatorIOS 的经验。现在,虽然我从未真正 运行 遇到任何问题,但我从未见过有人推荐使用它。

其他选项是 Navigator,这看起来很简单,但可能不允许太多本机 UI 支持?和 NavigatorExperimental 我对此一无所知,光是这个名字就让我担心。我不想做任何最后一刻的噩梦。

我计划花一个月的时间彻底学习 React Native,然后再花 2 个月的时间构建应用程序。

这引出了我的问题:如果您必须在 React Native 中构建跨平台应用程序,您会为每个平台使用哪种导航,为什么?

非常感谢任何答案或提示。

您可以使用 Ex-Navigation,它建立在 NavigationExperimental 之上,同时支持 iOS 和 Android。另外,它有一个路线导航系统并正确支持 Android 后退按钮。

如果您想继续使用 Navigator JavaScript 组件,我构建了 react-native-navigator-wrapper,它是 Navigator API 的简单包装器支持最常见的导航模式,如推送、弹出和模式。

我一直在使用react-native-router-flux,它非常灵活。你可以检查一下。

RN 图书馆每天都在出来。这些天在与您类似的情况下,为了简单起见,我的选择是坚持使用 router-flux,直到本机 wix 库开始支持更新的 RN 版本。 (正如我所记得的,没有提及各种人参与的问题,所以它非常活跃)。RN 是基于组件的,它很容易实现沿途的变化。所以不要像现在已经做出明确的选择那样固定:)

回答我自己的问题,因为我已经对不同的选项进行了大量研究,并亲自尝试了所有主要选项。

新编辑: 从今天 (12/2021) 开始,我建议使用 React Navigation v6。这是 Facebook 最推的社区解决方案。 V5 重写彻底改变了游戏规则,远优于以前的版本,V6 建立在它之上。易于设置和实施 easy/complicated 堆栈在大多数情况下是 breeze。

如果那不适合你,另一种选择是 react-native-navigation by wix(不幸的是与 expo 不兼容)。



关注native-nagivation by airbnb. They've been in beta for a while and not much has been pushed to the project recently so I'd still suggest React Navigation for prod. (edit: avoid - this project has been dropped。)



原文post如下:

TLDR: 截至今天(2017 年 1 月 13 日)我仍然强烈建议 React Native Router Flux. With ex-navigation, by Exponent 是一个很好的选择。

我一直在为我的项目使用 RNRF,到目前为止它非常完美。出色的导航栏和堆栈自定义(这对我来说很重要)并且易于与其他软件包集成。


更长的版本:(编辑:现已过时)

Navigator要避免。 无需详细说明原因,Facebook 已经放弃它并且不再维护它的事实对我来说是一个很大的足够的理由选择另一个导航。

NavigatorIOS: As the name states, only available on IOS, which isn't great if you're going for a cross-platform application. There are a couple of difference when it comes to stacking which to me, beats the whole 'learn once, write anywhere' FB 想要的东西。 话虽如此,如果您的 iOS 应用程序的导航不是 复杂,并且您不需要过多的导航栏自定义,那么这是一个利用原生 UIKit 的相当不错的选择导航,因此会自动呈现带有后退按钮和标题的导航栏。

NavigationExperimental:别像我一样被它的名字吓跑了。 NavigationExperimental 对导航堆栈有很多控制,并允许更容易的状态管理。不包括第 3 方库,这是转到导航选项。

Ex-Navigation:我只引用 Facebook 的 Eric Vicenti 的话,他是 React Native 团队的成员:

If you are interested in a more imperative approach, where you can sort of make method calls to navigate throughout your application in a way similar to the previous Navigator, then I would definitely recommend ExNavigation. We’re working relatively closely with Exponent so these things are not going to sort of diverge in dangerous ways.

React Router Native:文档说明了一切。我只能说,如果您习惯了 React Router,那么这可能适合您。


关注:React Native Navigation by WIX. Looks very decent but I haven't given it a go given the fact it's a bit behind the latest 版本的 React Native(写这个答案时)。


有趣的 RN Nav 阅读:

React Native — Which Navigator should I use?

First look: React Native Navigator Experimental Part 1

我只用过React Router Native,从来没有遇到过任何问题。

React Navigation,本地区的新项目。就个人而言,我发现它比不再维护的 React Native Router Flux 更好。

React Navigation 有很多好的特性和适当的文档。它的受欢迎程度正在迅速增长。 AFAIK,React 核心开发者社区的人是这个项目的幕后推手。看看这个,你可能会喜欢它。

编辑:React Navigation 现在是官方导航库。

有一个新项目 React Navigation 易于使用的导航器。 Facebook、Exponent 和 React 社区支持该项目。