一,安装:
库地址:
https://pub.dev/packages/go_router
安装:
dependencies:flutter:sdk: fluttergo_router: ^17.2.3
二,代码例子:

main.dart
import 'package:flutter/material.dart';
import 'package:myrouter/router/router.dart';void main() {runApp(const MyApp());
}class MyApp extends StatelessWidget {const MyApp({super.key});// This widget is the root of your application.@overrideWidget build(BuildContext context) {return MaterialApp.router(title: 'Flutter Demo',theme: ThemeData(colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),useMaterial3: true,),routerConfig: router,);}
}
router.dart
import 'package:flutter/material.dart';
import 'package:myrouter/router/router.dart';void main() {runApp(const MyApp());
}class MyApp extends StatelessWidget {const MyApp({super.key});// This widget is the root of your application.@overrideWidget build(BuildContext context) {return MaterialApp.router(title: 'Flutter Demo',theme: ThemeData(colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),useMaterial3: true,),routerConfig: router,);}
}
home_page.dart
class HomePage extends StatefulWidget {const HomePage({super.key});@overrideState<HomePage> createState() => _HomePageState();
}class _HomePageState extends State<HomePage> {@overrideWidget build(BuildContext context) {String name = '苏轼';int id = 123;return Scaffold(appBar: AppBar(backgroundColor: Theme.of(context).colorScheme.inversePrimary,title: const Text('主页'),),body: Center(child: Column(mainAxisAlignment: MainAxisAlignment.center,children: <Widget>[const Text('主页',style: TextStyle(fontSize: 40),),// 点击跳转到设置页面ElevatedButton(onPressed: () => GoRouter.of(context).push('/setting?name=${name}&id=${id}'),style: ElevatedButton.styleFrom(foregroundColor: Theme.of(context).colorScheme.onSecondary,backgroundColor: Theme.of(context).colorScheme.secondary,),child: const Text('跳转到设置页面'),)],),),);}
}
setting_page.dart
class HomePage extends StatefulWidget {const HomePage({super.key});@overrideState<HomePage> createState() => _HomePageState();
}class _HomePageState extends State<HomePage> {@overrideWidget build(BuildContext context) {String name = '苏轼';int id = 123;return Scaffold(appBar: AppBar(backgroundColor: Theme.of(context).colorScheme.inversePrimary,title: const Text('主页'),),body: Center(child: Column(mainAxisAlignment: MainAxisAlignment.center,children: <Widget>[const Text('主页',style: TextStyle(fontSize: 40),),// 点击跳转到设置页面ElevatedButton(onPressed: () => GoRouter.of(context).push('/setting?name=${name}&id=${id}'),style: ElevatedButton.styleFrom(foregroundColor: Theme.of(context).colorScheme.onSecondary,backgroundColor: Theme.of(context).colorScheme.secondary,),child: const Text('跳转到设置页面'),)],),),);}
}
三,测试效果:

