- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我必须在 3 个月内构建一个相对较大的跨平台(iOS 和 Android)应用程序。
到目前为止,在 React Native 方面,我只有 NavigatorIOS
的经验。现在,虽然我从未真正遇到过任何问题,但我从未见过有人推荐使用它。
其他选项是 Navigator
,这看起来很简单,但可能不允许太多原生 UI 支持?和我一无所知的 NavigatorExperimental
,光是这个名字就让我很担心。我不想在最后一刻做噩梦。
我计划用一个月的时间彻底学习 React Native,然后用 2 个月的时间构建应用程序。
这引出了我的问题:如果您必须在 React Native 中构建一个跨平台应用程序,您会为每个平台使用哪个导航,为什么?
非常感谢任何答案或提示。
最佳答案
回答我自己的问题,因为我已经对那里的不同选项进行了大量研究,并亲自尝试了所有主要选项。
新编辑: 从今天(2021 年 12 月)开始,我建议使用 React Navigation v6 .这是 Facebook 最推崇的社区解决方案。 V5 重写是一个完整的游戏规则改变者,远远优于以前的版本,V6 建立在它之上。大多数时候,易于设置和实现简单/复杂的堆栈是轻而易举的事。
如果这对您不起作用,另一种选择是 react-native-navigation通过 wix(不幸的是,与 expo 不兼容)。
关注 native-nagivation通过airbnb。它们已经处于测试阶段了一段时间,并且最近没有向项目推送太多内容,所以我仍然建议使用 React Navigation 作为产品。 (编辑:避免 - 这个项目是 dropped 。)
原帖如下:
TLDR:截至今天(2017 年 13 月 1 日),我仍然强烈建议 React Native Router Flux .与 ex-navigation , 由 Exponent是一个很好的选择。
我一直在我的项目中使用 RNRF,到目前为止它非常完美。出色的导航栏和堆栈自定义(这对我来说很重要)并且易于与其他软件包集成。
加长版:(编辑:现已过时)
Navigator :要避免。不详细说明原因,Facebook 已经放弃它并且不再维护它的事实对我来说是选择另一个导航的足够大的理由。
NavigatorIOS :顾名思义,仅在 IOS 上可用,如果您要使用跨平台应用程序,这不是很好。在堆叠方面有一些不同之处,对我来说,它胜过整个 '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 cansort of make method calls to navigate throughout your application in away similar to the previous Navigator, then I would definitelyrecommend ExNavigation. We’re working relatively closely with Exponentso these things are not going to sort of diverge in dangerous ways.
React Router Native : 文档说明了一切。我只能说,如果你习惯了 React Router,这可能适合你。
关注:React Native Navigation by WIX .看起来很不错,但考虑到它有点落后于latest,我没有尝试过。 react native 的版本(在写这个答案时)。
有趣的 RN Nav 内容如下:
关于android - react 原生 : Which navigator should I use?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39976957/
我在优化 JOIN 以使用复合索引时遇到问题。我的查询是: SELECT p1.id, p1.category_id, p1.tag_id, i.rating FROM products p1
我有一个简单的 SQL 查询,我正在尝试对其进行优化以删除“使用位置;使用临时;使用文件排序”。 这是表格: CREATE TABLE `special_offers` ( `so_id` int
我有一个具有以下结构的应用程序表 app_id VARCHAR(32) NOT NULL, dormant VARCHAR(6) NOT NULL, user_id INT(10) NOT NULL
此查询的正确索引是什么。 我尝试为此查询提供不同的索引组合,但它仍在使用临时文件、文件排序等。 总表数据 - 7,60,346 产品= '连衣裙' - 总行数 = 122 554 CREATE TAB
为什么额外的是“使用where;使用索引”而不是“使用索引”。 CREATE TABLE `pre_count` ( `count_id`
我有一个包含大量记录的数据库,当我使用以下 SQL 加载页面时,速度非常慢。 SELECT goal.title, max(updates.date_updated) as update_sort F
我想知道 Using index condition 和 Using where 之间的区别;使用索引。我认为这两种方法都使用索引来获取第一个结果记录集,并使用 WHERE 条件进行过滤。 Q1。有什
I am using TypeScript 5.2 version, I have following setup:我使用的是TypeScript 5.2版本,我有以下设置: { "
I am using TypeScript 5.2 version, I have following setup:我使用的是TypeScript 5.2版本,我有以下设置: { "
I am using TypeScript 5.2 version, I have following setup:我使用的是TypeScript 5.2版本,我有以下设置: { "
mysql Ver 14.14 Distrib 5.1.58,用于使用 readline 5.1 的 redhat-linux-gnu (x86_64) 我正在接手一个旧项目。我被要求加快速度。我通过
在过去 10 多年左右的时间里,我一直打开数据库 (mysql) 的连接并保持打开状态,直到应用程序关闭。所有查询都在连接上执行。 现在,当我在 Servicestack 网页上看到示例时,我总是看到
我使用 MySQL 为我的站点构建了一个自定义论坛。列表页面本质上是一个包含以下列的表格:主题、上次更新和# Replies。 数据库表有以下列: id name body date topic_id
在mysql中解释的额外字段中你可以得到: 使用索引 使用where;使用索引 两者有什么区别? 为了更好地解释我的问题,我将使用下表: CREATE TABLE `test` ( `id` bi
我经常看到人们在其Haxe代码中使用关键字using。它似乎在import语句之后。 例如,我发现这是一个代码片段: import haxe.macro.Context; import haxe.ma
这个问题在这里已经有了答案: "reduce" or "apply" using logical functions in Clojure (2 个答案) 关闭 8 年前。 “and”似乎是一个宏,
这个问题在这里已经有了答案: "reduce" or "apply" using logical functions in Clojure (2 个答案) 关闭 8 年前。 “and”似乎是一个宏,
我正在考虑在我的应用程序中使用注册表模式来存储指向某些应用程序窗口和 Pane 的弱指针。应用程序的一般结构如下所示。 该应用程序有一个 MainFrame 顶层窗口,其中有几个子 Pane 。可以有
奇怪的是:。似乎a是b或多或少被定义为id(A)==id(B)。用这种方式制造错误很容易:。有些名字出人意料地出现在Else块中。解决方法很简单,我们应该使用ext==‘.mp3’,但是如果ext表面
我遇到了一个我似乎无法解决的 MySQL 问题。为了能够快速执行用于报告目的的 GROUP BY 查询,我已经将几个表非规范化为以下内容(该表由其他表上的触发器维护,我已经同意了与此): DROP T
我是一名优秀的程序员,十分优秀!