我很少使用本机导航,而对于使用哪种导航我仍然感到困惑,以便将来的观点也得到管理。我使用了react-navigation,这是react-native和react-native-router-flux的默认值,我也使用了react-navigation,它有一个很好的文档。但是太多选择让我感到困惑。请帮忙,因为我的项目有点大,我不想在两者之间切换导航技术。
答案 0 :(得分:3)
我在项目中同时使用了react-native-navigation和react-native-router-flux,并在大型和常规尺寸的应用程序上体验了它们的行为。
总体而言,它们都是基于本机的导航库,具有易于集成的redux支持。当涉及到具有更多屏幕和更多填充内容的大型项目时,我建议使用react-native-navigation。在文档中说:
React Native Navigation在以下位置提供100%本机平台导航 适用于React Native应用的iOS和Android。
这意味着它将在导航方面提供100%的本机用户体验。 react-native-router-flux还在后台使用react-navigation,但是当您检查源代码时,您会发现在本机端和react-native端之间存在更多的JavaScript连接。它被实现为在另一层之间具有简化的用法,并且在正常大小的项目中效果很好。但是随着尺寸变大,将会导致性能降低;因为它将直接转到JavaScript桥接,而不是直接调用本地操作。因此,取决于您确定简单用法和性能之间的权衡。
答案 1 :(得分:1)
我在我的react-native项目中使用react navigation导航,这是一个问题,但是它是您所能找到的最好的问题,在v2中,它们解决了很多问题,最近React Native建议这样做我尝试使用跨平台界面来react native navigation进行100%本机导航,值得一看,但是我没有在实际项目中使用它,因此,现在我建议您使用反应导航。
答案 2 :(得分:0)
您可以选择多个导航器。以下是React Native文档中正式包含的一些导航器。
NavigatorIOS 是UINavigationController的包装,使您可以实现导航堆栈。它的工作方式与使用UINavigationController的本机应用程序相同,并从UIKit提供相同的动画和行为。 要设置导航器,请为initialRoute属性提供一个路由对象。路线对象用于描述您的应用导航到的每个场景。 initialRoute表示导航器中的第一条路线。
Navigator 与NavigatorIOS不同,Navigator适用于iOS和Android。 Navigator只是NavigatorIOS的JavaScript实现。
NavigationExperimental 旨在替代Navigator。但是由于缺乏文档,它很快也被废弃了。这里的另一个缺点是NavigationExperimental没有任何预定义的动作。您必须编写自己的动作。
Ex-Navigation 是另一种内部使用NavigatorExperimental API的导航器。在这里,用例更加简单,并且还引入了预定义的功能。
反应本地路由器流量是基于NavigationExperimental构建的,并被许多开发人员使用。在强大的社区的支持下,它也很容易理解。唯一的缺点是定义各种路线有时会变得复杂。
之所以创建React Navigation 是因为需要一种可扩展但易于使用的导航方法,React Navigation可以在React以及React Native项目中使用,从而实现更高程度的共享代码。
反应本机导航是可用的最佳导航库之一。它在iOS和Android上为React Native应用程序提供了完全本机的平台导航。这里的JavaScript API非常简单且跨平台。ReactNative Navigation带有可选的redux支持。
答案 3 :(得分:0)
实际上,我们在8个月前就使用了react-native-router-flux进行导航,但是在导航到另一个组件时,我们遇到了很多问题。
为此,我们实现了路由的反应导航,然后实现了 tab动画和页面之间的平滑路由,控制了从下到上以及反之亦然,并防止页面之间不必要的路由。
我更喜欢:反应导航。
答案 4 :(得分:0)