Appearance
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 适合塞所有业务逻辑 | 不适合。只放路由准入与导航相关判断 |