go_router_express library
An Express.js-like wrapper for go_router that provides a familiar routing API for Flutter applications.
This library provides:
- Express.js-style route registration with
app.get() - Request/response objects for handling routes
- Middleware support for cross-cutting concerns like authentication
- Path parameters and query parameters support
Example:
import 'package:flutter/material.dart';
import 'package:go_router_express/go_router_express.dart';
void main() {
final app = GoRouterExpress();
app.get('/todos/:id', [], (req, res) {
final id = req.params('id');
res.widget(TodoPage(id: id));
});
runApp(MyApp(app: app));
}
class MyApp extends StatelessWidget {
const MyApp({super.key, required this.app});
final GoRouterExpress app;
@override
Widget build(BuildContext context) {
return MaterialApp.router(
routerConfig: app.routerConfig,
);
}
}
Classes
- Allow
- Allows the navigation to proceed.
- Block
- Blocks the navigation from proceeding.
- CustomParameterCodec
- annotation to define a custom parameter decoder/encoder this is useful when the is encoded/decoded in a non-standard way like base64Url this must be used as an annotation on a field
-
CustomTransitionPage<
T> - Page with custom transition functionality.
- GoRoute Get started Configuration Redirection Transition animations Named routes
- A route that is displayed visually above the matching parent route using the Navigator.
- GoRouteData Type-safe routes
- A class to represent a GoRoute in Type-safe routing.
- GoRouteInformationParser
-
Converts between incoming URLs and a RouteMatchList using
RouteMatcher. - GoRouteInformationProvider
- The RouteInformationProvider created by go_router.
- GoRouter Get started Upgrading Configuration Redirection Web Deep linking Named routes Error handling State restoration
- The route configuration for the app.
- GoRouterDelegate
- GoRouter implementation of RouterDelegate.
- GoRouterExpress
- An Express.js-like wrapper for go_router.
- GoRouterState
- The route state during routing.
- ImperativeRouteMatch
- The route match that represent route pushed through GoRouter.push.
- InheritedGoRouter
- GoRouter implementation of InheritedWidget.
- MiddlewareChain
- Internal class to execute a chain of middleware.
-
NoTransitionPage<
T> - Custom transition page with no transition.
- OnEnterResult
- The result of an onEnter callback.
- RelativeGoRouteData Type-safe routes
- A class to represent a relative GoRoute in Type-safe routing.
- RouteBase
- The base class for GoRoute and ShellRoute.
- RouteBuilder
- Builds the top-level Navigator for GoRouter.
- RouteConfiguration
- The route configuration for GoRouter configured by the app.
- RouteData
- Baseclass for supporting Type-safe routing.
-
RouteInformationState<
T> - The data class to be stored in RouteInformation.state to be used by GoRouteInformationParser.
- RouteMatch
- An matched result by matching a GoRoute against a location.
- RouteMatchBase
- The base class for various route matches.
- RouteMatchList
- The list of RouteMatchBase objects.
- RoutingConfig Configuration
- A set of parameters that defines routing in GoRouter.
- ShellRoute Configuration
- A route that displays a UI shell around the matching child route.
- ShellRouteBase
- Base class for classes that act as shells for sub-routes, such as ShellRoute and StatefulShellRoute.
- ShellRouteContext
- Context object used when building the shell and Navigator for a shell route.
- ShellRouteData
- A class to represent a ShellRoute in Type-safe routing.
- ShellRouteMatch
- An matched result by matching a ShellRoute against a location.
- Widget for managing the state of a StatefulShellRoute.
- State for StatefulNavigationShell.
- StatefulShellBranch
- Representation of a separate branch in a stateful navigation tree, used to configure StatefulShellRoute.
- StatefulShellBranchData
- Base class for supporting StatefulShellRoute
- StatefulShellRoute Configuration
- A route that displays a UI shell with separate Navigators for its sub-routes.
- StatefulShellRouteData
- Base class for supporting StatefulShellRoute
-
TypedGoRoute<
T extends GoRouteData> - A superclass for each typed go route descendant
-
TypedRelativeGoRoute<
T extends RelativeGoRouteData> - A superclass for each typed relative go route descendant
-
TypedRoute<
T extends RouteData> - A superclass for each typed route descendant
-
TypedShellRoute<
T extends ShellRouteData> - A superclass for each typed shell route descendant
-
TypedStatefulShellBranch<
T extends StatefulShellBranchData> - A superclass for each typed shell route descendant
-
TypedStatefulShellRoute<
T extends StatefulShellRouteData> - A superclass for each typed shell route descendant
- WidgetMiddleware
- Abstract base class for creating middleware in the go_router_express framework.
- WidgetRequest
- Represents an incoming request in the go_router_express framework.
- WidgetResponse
- Represents a response in the go_router_express framework.
Enums
- The type of the navigation.
Extensions
- GoRouterHelper on BuildContext
- Dart extension to add navigation function to a BuildContext object, e.g. context.go('/');
Typedefs
-
ExitCallback
= FutureOr<
bool> Function(BuildContext context, GoRouterState state) -
Signature for function used in
RouteBase.onExit. - GoExceptionHandler = void Function(BuildContext context, GoRouterState state, GoRouter router)
-
The function signature of
GoRouter.onException. - Signature of a go router builder function with navigator.
- GoRouterPageBuilder = Page Function(BuildContext context, GoRouterState state)
- The page builder for GoRoute.
-
GoRouterRedirect
= FutureOr<
String?> Function(BuildContext context, GoRouterState state) - The signature of the redirect callback.
- GoRouterWidgetBuilder = Widget Function(BuildContext context, GoRouterState state)
- The widget builder for GoRoute.
-
The function signature for navigation callbacks in
_OnEnterHandler. - Signature for functions used to build Navigators
-
OnEnter
= FutureOr<
OnEnterResult> Function(BuildContext context, GoRouterState currentState, GoRouterState nextState, GoRouter goRouter) -
The signature for the top-level
onEntercallback. -
OnEnterThenCallback
= FutureOr<
void> Function() - Signature for callbacks invoked after an OnEnterResult is resolved.
- ParserExceptionHandler = RouteMatchList Function(BuildContext context, RouteMatchList routeMatchList)
- The function signature of GoRouteInformationParser.onParserException.
- PopPageWithRouteMatchCallback = bool Function(Route route, dynamic result, RouteMatchBase match)
-
Signature for a function that takes in a
routeto be popped with theresultand returns a boolean decision on whether the pop is successful. - RouteHandler = void Function(WidgetRequest req, WidgetResponse res)
- Type definition for a route handler function.
- RouteInfoState = RouteInformationState
- Type alias for route information state with dynamic type parameter.
- RouteMatchVisitor = bool Function(RouteMatchBase)
-
The function signature for
RouteMatchList.visitRouteMatches - RouteSetup = void Function(GoRouterExpress app)
- Type definition for route setup callback.
- Builder for a custom container for the branch Navigators of a StatefulShellRoute.
- ShellRouteBuilder = Widget Function(BuildContext context, GoRouterState state, Widget child)
- The widget builder for ShellRoute.
- ShellRoutePageBuilder = Page Function(BuildContext context, GoRouterState state, Widget child)
- The page builder for ShellRoute.
- StatefulShellRouteBuilder = Widget Function(BuildContext context, GoRouterState state, )
- The widget builder for StatefulShellRoute.
- StatefulShellRoutePageBuilder = Page Function(BuildContext context, GoRouterState state, )
- The page builder for StatefulShellRoute.
Exceptions / Errors
- GoError
- Thrown when GoRouter is used incorrectly.
- GoException
- Thrown when GoRouter can not handle a user request.