我必须在3个月内构建一个相对较大的跨平台(iOS和Android)应用程序。
到目前为止,当谈到React Native时,我只有NavigatorIOS
的经验。虽然我从未真正遇到任何问题,但我从未见过人们推荐使用它。
其他选项是Navigator
,这看起来很简单,但可能不允许很多原生UI支持?和NavigatorExperimental
我一无所知,这个名字让我担心。我不想做最后一分钟的噩梦。
我计划花一个月的时间彻底学习React Native,然后花2个月的时间来构建应用程序。
这引出了我的问题:如果你必须在React Native中构建一个跨平台应用程序,你将为每个平台使用哪种导航,为什么?
非常感谢任何答案或提示。
答案 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-navigation,Exponent是一个很好的选择。
我一直在为我的项目使用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读取:
答案 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社区都支持该项目。