金色时刻 · 15:48
让好资源,触手可及
AGENT SKILL

go-router-navigation

go-router-navigation 是面向软件开发的 Agent Skill,来自 HoangNguyen0403/agent-skills-standard。查看技能说明、操作步骤与使用约定,并通过原项目了解详细用法。

Typed routes, route state, and redirection using go_router.

SKILL.md

下载 MD ↓
nameFlutter GoRouter Navigation
descriptionTyped routes, route state, and redirection using go_router.
metadata{"labels": ["navigation", "go-router", "routing"], "triggers": {"files": ["**/router.dart", "**/app_router.dart"], "keywords": ["GoRouter", "GoRoute", "StatefulShellRoute", "redirection", "typed-routes"]}}

GoRouter Navigation

Priority: P0 (CRITICAL)

Type-safe deep linking and routing system using go_router and go_router_builder.

Structure

core/router/
├── app_router.dart # Router configuration
└── routes.dart # Typed route definitions (GoRouteData)

Implementation Guidelines

  • Typed Routes: Always use GoRouteData from go_router_builder. Never use raw path strings.
  • Root Router: One global GoRouter instance registered in DI.
  • Sub-Routes: Nest related routes using TypedGoRoute and children lists.
  • Redirection: Handle Auth (Login check) in the redirect property of the GoRouter config.
  • Parameters: Use @TypedGoRoute to define paths with :id parameters.
  • Transitions: Define standard transitions (Fade, Slide) in buildPage.
  • Navigation: Use MyRoute().go(context) or MyRoute().push(context).

Code

// Route Definition
@TypedGoRoute<HomeRoute>(path: '/')
class HomeRoute extends GoRouteData {
  @override
  Widget build(context, state) => const HomePage();
}

// Router Config
final router = GoRouter(
  routes: $appRoutes,
  redirect: (context, state) {
    if (notAuthenticated) return '/login';
    return null;
  },
);

Related Topics

layer-based-clean-architecture | auto-route-navigation | security

来源:HoangNguyen0403/agent-skills-standard · MIT 许可 · 许可原文 · MD 为来源页保存的历史版本