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

时间:2016-10-11 12:11:14

标签: android ios react-native react-native-navigation

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

到目前为止,当谈到React Native时,我只有NavigatorIOS的经验。虽然我从未真正遇到任何问题,但我从未见过人们推荐使用它。

其他选项是Navigator,这看起来很简单,但可能不允许很多原生UI支持?和NavigatorExperimental我一无所知,这个名字让我担心。我不想做最后一分钟的噩梦。

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

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

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

7 个答案:

答案 0 :(得分:26)

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

新编辑:截至今日(14/3/2019),我建议使用React Navigation v3。这是Facebook推动的社区解决方案。这远非完美 - 我发现很难开始,我认为文档很糟糕,但一旦设置完成就完成了工作。

如果那不是为你做的另一个选择是react-native-navigation wix(不幸的是与expo不兼容)。

通过airbnb关注native-nagivation。他们已经测试了一段时间并且最近没有被推到该项目,所以我仍然建议React Navigation为prod。 (编辑:避免 - 此项目已dropped。)

以下原帖:

TLDR:截至今天(13/01/2017),我仍然强烈建议React Native Router Flux。使用ex-navigationExponent是一个很好的选择。

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

版本较长:(编辑:现在已过期)

Navigator要避免。没有详细说明为什么,Facebook放弃它并且不再维护它的事实对我而言,是一个足够的理由来选择另一个导航

NavigatorIOS:正如名称所述,仅适用于IOS,如果您要使用跨平台应用程序,这不是很好。对于我来说堆叠哪个有一些区别,比FB正在进行的整个'learn once, write anywhere'事情要好。 话虽如此,如果您的iOS应用程序的导航不是复杂,并且您不是在寻找太多的导航栏自定义,这是一个利用原生UIKit导航的相当不错的选择,因此会自动渲染导航栏带有后退按钮和标题。

NavigationExperimental:不要被它的名字吓到。 NavigationExperimental具有对导航堆栈的大量控制,并允许更容易的状态管理。排除第三方库,这是转到导航选项。

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

  

如果您对更迫切需要的方法感兴趣,请尽可能   一种make方法调用,用于在整个应用程序中导航   类似于以前的导航器,那我肯定会   推荐ExNavigation。我们与Exponent密切合作   所以这些事情不会以危险的方式发生分歧。

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

留意:React Native Navigation by WIX。看起来非常体面,但我没有给它一个去,因为它有点落后于反应原生的latest版本(当写这个答案时)。

有趣的RN Nav读取:

React Native — Which Navigator should I use?

First look: React Native Navigator Experimental Part 1

答案 1 :(得分:3)

您可以使用基于NavigationExperimental构建的Ex-Navigation并支持iOS和Android。此外,它还有一个路线导航系统,并正确支持Android后退按钮。

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

答案 2 :(得分:2)

我一直在使用react-native-router-flux,而且非常灵活。你可以看看。

答案 3 :(得分:2)

React Navigation,这个领域的新项目。就个人而言,我发现它比React Native Router Flux更好,它不再被维护了。

React Navigation 通过适当的文档提供了许多优秀的功能。它的受欢迎程度正在迅速增长。 AFAIK,React核心开发人员社区人员都支持这个项目。看看这个,你可能会喜欢它。

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

答案 4 :(得分:1)

RN图书馆每天都会推出。在像你这样的类似情况下,我的选择是坚持使用router-flux来简化,直到本机wix库开始支持更新的RN版本。 (我记得,有很多问题提到了各种各样的人,所以它非常活跃).RN是基于组件的,它很容易在一路上实现变化。所以不要像你现在做出明确的选择那样注意:)

答案 5 :(得分:0)

我只使用React Router Native而且从未遇到任何问题。

答案 6 :(得分:-1)

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