go_router_express 1.0.4
go_router_express: ^1.0.4 copied to clipboard
An Express.js-like wrapper for go_router that provides a familiar routing API for Flutter applications.
go_router_express #
An Express.js-like wrapper for go_router.
Usage #
final express = GoRouterExpress((app) {
app.get('/', [], (req, res) {
res.page(const HomePage());
});
app.get('/details', [], (req, res) {
res.page(const DetailsPage());
});
});
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp.router(routerConfig: express.router);
}
}
Middleware #
class LoggingMiddleware extends WidgetMiddleware {
@override
Widget build(WidgetRequest req, WidgetResponse res, Widget Function() next) {
debugPrint('Route: ${req.path}');
return next();
}
}
// Use middleware in routes
final express = GoRouterExpress((app) {
app.get('/details', [LoggingMiddleware()], (req, res) {
res.page(const DetailsPage());
});
});
Navigation #
go_router is re-exported, so you can use all go_router extensions:
// go - replace navigation stack
context.go('/details');
// push - add to navigation stack
context.push('/details');
// pop - go back
context.pop();
// From button
ElevatedButton(
onPressed: () => context.go('/details'),
child: const Text('Go to Details'),
);
Issues #
For bug reports and feature requests, please visit: GitHub issues
License #
MIT