Flutter Navigation 是一种面向 Flutter 应用的导航与路由实现、审查与验证技能。
用途
该技能用于处理 Flutter 的路由、深度链接目标、返回栈行为、嵌套导航、状态恢复、重定向与 URL 同步等任务。其核心主张是:当 URL、深度链接、状态恢复或多个导航器有需求时,应将导航建模为应用状态;对于真正局部的流程,则使用更简单的命令式导航。
先做检查
在使用该技能前,应先识别当前路由器、路由归属、认证流程、标签或外壳结构、支持的平台、URL 需求以及状态恢复预期。除非明确要求迁移,否则应保留现有路由包。
规则
- 保持路由名称、路径参数与参数解码为类型化或集中校验。
- 使重定向逻辑确定,且不产生重定向循环。
- 在 Android 系统返回、浏览器历史、iOS 手势、嵌套导航器与模态之间,保持预期的返回行为。
- 仅对独立历史(例如标签外壳)使用嵌套导航。
- 将深度链接解析为领域安全状态,并定义未知或未授权目标的行为。
- 将导航副作用放在 widget build 之外。
- 不要把大型领域对象直接放在 URL 或恢复状态中。
验证
需要测试冷启动深度链接、热链接、后退与前进行为、认证重定向、无效参数、所需的状态恢复,以及每个受支持外壳或标签历史。
参考资料
当涉及标签外壳模式或独立返回历史时,参考嵌套外壳导航资料;当处理深度链接或状态恢复时,参考深度链接与恢复资料。
来源
Flutter navigation and routing;Deep linking。