Hola, Amigos! На связи Саша Чаплыгин, Flutter-dev Amiga. Раз в неделю мы планируем рассказывать о пакетах для Flutter, и сегодня поговорит о GoRouter.
GoRouter — это навигационный пакет для Flutter, который предоставляет более гибкий и простой способ управления маршрутизацией в приложении Flutter. Он позволяет управлять маршрутизацией и передавать параметры между экранами с помощью более простого и читабельного синтаксиса.
GoRouter предлагает следующие преимущества:
- Гибкость: GoRouter позволяет определять маршруты в любой последовательности и в любых местах в коде.
- Удобство: с GoRouter можно передавать параметры маршрута в более простом и читабельном виде.
- Читаемость: маршруты в GoRouter определяются в виде простых и понятных строковых значений.
- Поддержка deeplink'ов: GoRouter поддерживает deeplink'и, которые могут быть созданы во время выполнения приложения.
- Независимость: GoRouter не зависит от конкретного типа виджета или библиотеки состояний.
Для использования GoRouter вам нужно добавить его в зависимости вашего проекта в файле pubspec.yaml:
dependencies:
go_router: ^2.3.0
Затем вы можете создать экземпляр GoRouter и определить маршруты. Например, вы можете определить маршруты для двух экранов: HomePage и SettingsPage:import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'home_page.dart';
import 'settings_page.dart';
final goRouter = GoRouter(
routes: [
GoRoute(
path: '/',
pageBuilder: (context, state) => HomePage(),
),
GoRoute(
path: '/settings',
pageBuilder: (context, state) => SettingsPage(),
),
],
);
Затем вам нужно использовать экземпляр GoRouter в качестве главного маршрутизатора вашего приложения. Например, вы можете использовать его в методе build вашего MaterialApp:class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp.router(
routerDelegate: goRouter.delegate(),
routeInformationParser: goRouter.routeInformationParser(),
);
}
}
Кроме того, GoRouter предоставляет множество дополнительных функций, таких как обработка ошибок маршрутизации, переходы на новые экраны и многое другое.