Junior — Middle
შეგიძლიათ ახსნათ Navigatior 2.0-ის კონცეფცია და ძირითადი მახასიათებლები?
sobes.tech AI
პასუხი AI-სგან
Flutter-ში Navigator 2.0 არის ახალი ნავიგაციის სისტემა, რომელიც უზრუნველყოფს მეტ კონტროლს მარშრუტიზაციისა და ნავიგაციის მდგომარეობის উপর შედარებით კლასიკურ 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()),
თუ (_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-თან.