用途:在 Flutter 应用中实现屏幕间跳转、路由管理与深度链接。
主要能力:区分 Navigator(命令式,适合无复杂深度链接的小型应用)与 Router(声明式,适合需要 Web URL 同步和深度链接的应用);支持 iOS、Android、Web 深度链接(Web 无需额外配置);讲解命令式导航的 push/pop、pushReplacement、pushAndRemoveUntil,以及通过构造函数或 RouteSettings 传参、通过 pop 返回值;讲解声明式导航需改用 MaterialApp.router 并借助 go_router 等包,用 context.go('/path') 跳转;区分 page-backed 与 pageless 路由;讲解嵌套导航,用 GlobalKey<NavigatorState> 与 onGenerateRoute 管理子流程,并用 PopScope 拦截返回键。
使用方式:基本跳转用 Navigator.push 配合 MaterialPageRoute/CupertinoPageRoute,返回用 Navigator.pop;需要深度链接时添加 go_router,将 MaterialApp 改为 MaterialApp.router,定义 GoRouter 配置并替换跳转调用;嵌套流程在宿主 widget 内实例化 Navigator,指定 key 与 onGenerateRoute,用 navigatorKey.currentState!.pushNamed() 推进步骤。
限制:资料建议多数应用避免使用命名路由(MaterialApp.routes 与 Navigator.pushNamed),因其深度链接行为僵化且不支持浏览器前进按钮,推荐改用 go_router。其余收费、平台细节暂未提供。