31

I have to build a relatively big cross-platform (iOS & Android) application within 3 months.

So far when it comes to React Native I only have experience with NavigatorIOS. Now while I never really ran into any problems with it I never see people recommending its use.

The other options are Navigator, which seems simple enough but maybe doesn't allow much native UI support? and NavigatorExperimental which I know nothing of, and the name alone worries me. I don't want to be having any last minute nightmares.

I plan on spending a month learning React Native thoroughly and then 2 months building the application.

This leads me to my question: If you had to build a cross platform application in React Native, which navigation would you use for each platform, and why?

Any answers or tips greatly appreciated.

4

7 回答 7

33

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

NEW EDIT: As of today (12/2021) I suggest using React Navigation v6. It's the community solution being most pushed by Facebook. The V5 rewrite was a complete game changer and is far superior to previous versions, V6 builds on top of it. Easy to get setup and implementing easy/complicated stacks is a breeze most of the time.

If that's not doing it for you another alternative is react-native-navigation by wix (not compatible with expo unfortunately).



Keep an eye on 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.)



original post below:

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

我一直在为我的项目使用 RNRF,到目前为止它非常完美。精湛的导航栏和堆栈定制(这对我来说是一件大事)并且易于与其他软件包集成。


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

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

NavigatorIOS:顾名思义,仅在 IOS 上可用,如果您要使用跨平台应用程序,这不是很好。在堆叠方面有几个不同之处,对我来说,这比 FB 所追求的整个“学习一次,随处写”的东西都要好。话虽如此,如果您的 iOS 应用程序的导航不是复杂,并且您不需要太多的导航栏自定义,这是一个相当不错的选择,它利用了本机 UIKit 导航,因此将自动呈现带有后退按钮的导航栏和标题。

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

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

如果您对更命令式的方法感兴趣,您可以在其中进行方法调用,以类似于以前的 Navigator 的方式在整个应用程序中导航,那么我肯定会推荐 ExNavigation。我们正在与 Exponent 进行相对密切的合作,因此这些事情不会以危险的方式出现分歧。

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


密切关注:WIX 的 React Native Navigation。看起来很不错,但考虑到它有点落后于最新版本的 react native(在写这个答案时),我还没有尝试过。


有趣的 RN Nav 内容如下:

React Native — 我应该使用哪个 Navigator?

第一眼:React Native Navigator Experimental Part 1

于 2016-10-14T18:08:36.100 回答
3

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

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

于 2016-10-11T13:34:51.817 回答
2

React Navigation,这个领域的一个新项目。我个人觉得它比不再维护的 React Native Router Flux 更好。

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

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

于 2017-02-14T03:13:52.007 回答
2

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

于 2016-10-11T20:13:31.673 回答
1

RN 库每天都在问世。在最近像你这样的类似情况下,为了简单起见,我的选择是坚持使用 router-flux,直到原生 wix 库开始支持更新的 RN 版本。(我记得,没有提到各种人参与的问题,所以它非常活跃)。RN 是基于组件的,在此过程中很容易实现更改。所以不要像你现在已经做出明确的选择那样固执己见:)

于 2016-10-12T15:31:54.440 回答
0

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

于 2016-10-14T18:48:51.947 回答
0

有一个新项目React Navigation可以方便地使用导航器。Facebook、Exponent 和 React 社区支持该项目。

于 2017-03-04T08:48:19.703 回答