AgentSkillsCN

Flutter AutoRoute Navigation

利用 auto_route 实现类型安全的路由、嵌套路由与守卫机制。

SKILL.md
--- frontmatter
name: Flutter AutoRoute Navigation
description: Typed routing, nested routes, and guards using auto_route.
metadata:
  labels: [navigation, auto-route, routing]
  triggers:
    files: ['**/router.dart', '**/app_router.dart']
    keywords: [AutoRoute, AutoRouter, router, guards, navigate, push]

AutoRoute Navigation

Priority: P1 (HIGH)

Type-safe routing system with code generation using auto_route.

Structure

text
core/router/
├── app_router.dart # Router configuration
└── app_router.gr.dart # Generated routes

Implementation Guidelines

  • @RoutePage: Annotate all screen/page widgets with @RoutePage().

  • Router Config: Extend _$AppRouter and annotate with @AutoRouterConfig.

  • Typed Navigation: Use generated route classes (e.g., HomeRoute()). Never use strings.

  • Nested Routes & Tabs: Use children in AutoRoute for tabs. When navigating to a route with nested tabs, use the children parameter to define the initial active sub-route (e.g., context.navigateTo(OrdersTabRoute(children: [ViewByOrdersPageRoute()]))).

  • Guards: Implement AutoRouteGuard for authentication/authorization logic.

  • Parameters: Constructors of @RoutePage widgets automatically become route parameters.

  • Declarative: Prefer context.pushRoute() or context.replaceRoute().

Reference & Examples

For full Router configuration and Auth Guard implementation: See references/REFERENCE.md.

Related Topics

go-router-navigation | layer-based-clean-architecture