You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

@react-navigation/stack与@react-navigation/native-stack有什么区别?

问题解答

首先澄清你的错误假设:@react-navigation/stack 和 @react-navigation/native-stack 都是专为React Native应用提供的堆栈导航组件,二者都不支持普通React Web应用,Web端React项目通常使用react-router等库实现路由能力。

二者核心区别

  • 实现逻辑不同
    @react-navigation/stack 是纯JS模拟实现的导航组件,所有页面转场动画、手势交互、头部渲染逻辑都在JS层完成,定制化能力极强,支持你自定义几乎所有导航相关的交互和样式,适配性更高,这也是它周下载量(301,111次)远高于另一个包的主要原因。
    对应的基础使用代码:
import { createStackNavigator } from '@react-navigation/stack'
const Stack = createStackNavigator()

@react-navigation/native-stack 是基于原生系统自带的导航能力封装的组件,iOS端调用UINavigationController实现,安卓端调用Fragment实现,交互体验和原生应用完全一致,性能更好,但定制化能力很弱,很多JS版stack支持的自定义配置都不支持,适合对导航样式/交互要求不高、追求原生体验的项目,目前周下载量为24,830次。
对应的基础使用代码:

import { createNativeStackNavigator } from '@react-navigation/native-stack'
const Stack = createNativeStackNavigator()

选型建议

如果你的项目需要自定义转场动画、自定义头部样式、特殊手势交互等需求,优先选择@react-navigation/stack;如果你的项目没有复杂的导航定制需求,想要更流畅的原生导航体验,选择@react-navigation/native-stack即可。


内容的提问来源于stack exchange,提问作者John Stuart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 13:30:02