| 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
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
_$AppRouterand annotate with@AutoRouterConfig. - Typed Navigation: Use generated route classes (e.g.,
HomeRoute()). Never use strings. - Nested Routes & Tabs: Use
childreninAutoRoutefor tabs. When navigating to a route with nested tabs, use thechildrenparameter to define the initial active sub-route (e.g.,context.navigateTo(OrdersTabRoute(children: [ViewByOrdersPageRoute()]))). -
Guards: Implement
AutoRouteGuardfor authentication/authorization logic. -
Parameters: Constructors of
@RoutePagewidgets automatically become route parameters. - Declarative: Prefer
context.pushRoute()orcontext.replaceRoute().
Reference & Examples
For full Router configuration and Auth Guard implementation: See references/REFERENCE.md.
Related Topics
go-router-navigation | layer-based-clean-architecture