Back to questions
Junior — Middle
80
Можете объяснить концепцию и основные особенности Navigatior 2.0?
Companies where asked
HamkorBank
Answer from AI
sobes.tech AI
Navigator 2.0 в Flutter — это новая система навигации, которая даёт больше контроля над маршрутизацией и состоянием навигации по сравнению с классическим Navigator 1.0.
Основные особенности Navigator 2.0:
- Декларативный подход: вместо вызова методов push/pop вы описываете текущее состояние навигации через список страниц.
- Поддержка URL и deep linking: можно синхронизировать состояние навигации с URL, что важно для веб-приложений.
- Гибкость: позволяет реализовывать сложные сценарии навигации, например, вложенные навигационные стеки.
- RouterDelegate и RouteInformationParser: ключевые классы для управления навигацией и парсинга URL.
Пример упрощённого использования Navigator 2.0:
class MyRouterDelegate extends RouterDelegate<MyRoutePath> with ChangeNotifier, PopNavigatorRouterDelegateMixin<MyRoutePath> {
final GlobalKey<NavigatorState> navigatorKey;
MyRouterDelegate() : navigatorKey = GlobalKey<NavigatorState>();
MyRoutePath _currentPath;
@override
Widget build(BuildContext context) {
return Navigator(
key: navigatorKey,
pages: [
MaterialPage(child: HomeScreen()),
if (_currentPath.isDetailsPage) MaterialPage(child: DetailsScreen()),
],
onPopPage: (route, result) {
if (!route.didPop(result)) return false;
_currentPath = MyRoutePath.home();
notifyListeners();
return true;
},
);
}
@override
Future<void> setNewRoutePath(MyRoutePath path) async {
_currentPath = path;
}
}
Таким образом, Navigator 2.0 позволяет лучше контролировать навигацию и интегрировать её с внешними источниками, например, URL браузера.