使用像 React Navigation 这样的基于 JS 的导航解决方案而不是使用像 Wix 的 React Native Navigation 这样的 Native Navigation 的缺点?

Posted

技术标签:

【中文标题】使用像 React Navigation 这样的基于 JS 的导航解决方案而不是使用像 Wix 的 React Native Navigation 这样的 Native Navigation 的缺点?【英文标题】:Disadvantage of using JS based navigation solution like React Navigation instead of using Native Navigation like Wix's React Native Navigation? 【发布时间】:2018-06-12 06:49:57 【问题描述】:

我能想到使用 Native Navigation 的唯一原因是当我有更多屏幕和基于 JS 的解决方案(如 React Navigation)时,会将所有屏幕保留在内存中。现在我不是原生开发者,所以上面的事情可能很模糊。

【问题讨论】:

我同意。 【参考方案1】:

我是 react-native-navigation 的贡献者之一。这个问题很常见,我之前写过一个答案(作为 react-navigation VS react-native-navigation)。

React-Navigation 是基于 javascript 的导航,这意味着所有导航都发生在单个 Activity 内(在 androidios 对应)。

基于 Javascript 的导航的好处是它们可以在大多数平台上运行。但由于在同一个活动中堆叠所有内容,它们通常会遇到性能问题。

另一方面,React-Native-Navigation 是真正的原生导航。每个屏幕都有其处理本机系统的本机容器。以每个平台的深度集成为代价,更好地优化更好的性能。

希望对您有所帮助。

【讨论】:

动画怎么样,因为 React Navigation 有一些 janky 行为和一些动画有奇怪的行为,比如 github.com/react-navigation/react-navigation/issues/2539 我认为 Wix 的人们应该写一篇比较 JS 和 Native 路由器的文章。这样,当这个话题出现时(经常出现),它总是可以被引用 @deadcoder0904 您提到的问题将通过调整本机代码动画来解决(这并不难)。基于 JS 的导航的性能问题则完全不同。

以上是关于使用像 React Navigation 这样的基于 JS 的导航解决方案而不是使用像 Wix 的 React Native Navigation 这样的 Native Navigation 的缺点?的主要内容,如果未能解决你的问题,请参考以下文章

React-navigation:与身份验证的深度链接

React Navigation 添加保存按钮

React-native-navigation 选项卡栏中心圆圈图标

使用 react-navigation 中的 useRoute 进行 Jest 单元测试

React Native使用react-navigation时,设置navigationOptions中Static中使用this注意点

React Navigation抽屉的状态? (开放或关闭)