Junior — Middle
Navigatior 2.0-nin konseptini və əsas xüsusiyyətlərini izah edə bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
Flutter-də Navigator 2.0, ənənəvi Navigator 1.0 ilə müqayisədə marşrutlaşdırma və naviqasiya vəziyyəti üzərində daha çox nəzarət təmin edən yeni naviqasiya sistemidir.
Navigator 2.0-ın əsas xüsusiyyətləri:
- Deklarativ yanaşma: push/pop metodlarını çağırmaq əvəzinə, cari naviqasiya vəziyyətini səhifələr siyahısı vasitəsilə təsvir edirsiniz.
- URL və deep linking dəstəyi: naviqasiya vəziyyətini URL ilə sinxronizasiya etmək mümkündür, bu veb tətbiqləri üçün vacibdir.
- Əlverişlilik: mürəkkəb naviqasiya ssenarilərini, məsələn, iç-içə naviqasiya yığınlarını həyata keçirməyə imkan verir.
- RouterDelegate və RouteInformationParser: URL-ləri təhlil etmək və naviqasiyanı idarə etmək üçün əsas sinflər.
Navigator 2.0-ın sadələşdirilmiş istifadəsi nümunəsi:
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;
}
}
Bu şəkildə Navigator 2.0 naviqasiyanı daha yaxşı idarə etməyə və onu brauzer URL-i kimi xarici mənbələrlə inteqrasiya etməyə imkan verir.