SuperAPI AI 工具集

navigation

通用与其它

查看项目

更新于 10-16 01:27

技能介绍

用途:为 Flutter 应用提供基于 GoRouter 的导航与路由实践规范。GoRouter 是 Flutter 团队推荐、构建于 Navigator 2.0 API 之上的路由包。

主要能力与标准:统一使用 package:go_router,不使用原生 Navigator 1.0/2.0 的 push/pop;使用 @TypedGoRoute 注解定义类型安全路由,不在路由定义中使用原始字符串路径;优先 go() 而非 push(),仅当需要目标页面返回数据时用 push();禁止使用 extra 参数(破坏深链接、在 Web 上无效);用父子层级子路由而非扁平列表;URL 分词用连字符,不用下划线或驼峰;按路由名而非原始路径导航;用 BuildContext 扩展,如 context.goNamed()。

路由组织:推荐层级结构,如 /flutter 下的 /flutter/news、/flutter/chat、/flutter/articles 与 /flutter/article/:id;避免 /flutter-news 这类扁平路径。层级子路由会自动产生正确的返回导航。

类型安全路由:每个路由是带 @TypedGoRoute 注解的 GoRouteData 类,子路由嵌套在父路由的 routes 列表中,由 package:go_router_builder 生成导航辅助代码。

参数:路径参数(:id)用于资源标识,查询参数(?category=all)用于可选过滤。

重定向:可在根路由级(如鉴权守卫)和单个路由级(如授权守卫)配置,父级重定向先于子级执行。

测试:用 package:mocktail 模拟 GoRouter,在 widget 测试中用 InheritedGoRouter 包裹组件;测试重定向时构造带目标逻辑的 GoRouter 并断言结果页面。

新增路由步骤:创建页面组件;定义带 @TypedGoRoute 的 GoRouteData 类;作为子路由挂到合适父路由;运行 dart run build_runner build --delete-conflicting-outputs 重新生成路由辅助代码;用生成的类型安全路由类导航。深链接设置需结构化 URL、路径参数标识资源、查询参数过滤并用路由名导航,以目标 URL 启动应用进行测试。

参考资料涉及 parameters.md、redirects.md、typed-routes.md、testing.md。具体收费、平台支持与效果暂未提供。