Skip to content

flutter-routing-go-router

1. 实验目标

用最小 go_router 样例验证:

  • 声明式路由配置
  • path 参数读取
  • query 参数读取
  • redirect 守卫
  • Flutter 页面栈与 URL/状态配置的关系

2. 工程要点

  • GoRouter 统一收敛路由配置
  • 首页进入详情页时同时传 path 与 query
  • 用本地布尔值模拟登录态,验证 redirect
  • 保留基础 Navigator 样例,便于对照“命令式 vs 声明式”

3. 运行方式

bash
cd labs/flutter/host
flutter run -d macos

启动后在首页进入 Flutter Routing go_router

4. 预期现象

  • 未登录时访问受保护详情页会被重定向到登录页
  • 登录后再进详情页可读取 path/query 参数
  • 返回后仍可理解当前路由状态是由配置驱动而非纯手动栈操作

5. 常见误区

误区实际情况
go_router 只是 pushNamed 换皮不是。它更偏声明式状态驱动
有了 go_router 就不需要理解 Navigator 栈错。底层页面栈语义仍然重要
redirect 适合塞所有业务逻辑不适合。只放路由准入与导航相关判断

6. 对应知识库文档

7. 关键源码