Junior — Middle
Navigatior 2.0 ning konsepti va asosiy xususiyatlarini tushuntirib bera olasizmi?
sobes.tech AI
AIdan javob
Flutter'da Navigator 2.0, an'anaviy Navigator 1.0 bilan taqqoslaganda, marshrutlash va navigatsiya holati ustidan ko'proq nazorat qilish imkonini beradigan yangi navigatsiya tizimidir.
Navigator 2.0 ning asosiy xususiyatlari:
- Deklarativ yondashuv: push/pop metodlarini chaqirish o'rniga, siz hozirgi navigatsiya holatini sahifalar ro'yxati orqali tasvirlaysiz.
- URL va deep linking qo'llab-quvvatlash: navigatsiya holatini URL bilan sinxronlashtirish mumkin, bu veb-ilovalar uchun muhim.
- Moslashuvchanlik: murakkab navigatsiya ssenariylarini, masalan, ichma-ich navigatsiya yiginlarini amalga oshirish imkonini beradi.
- RouterDelegate va RouteInformationParser: URL'larni tahlil qilish va navigatsiyani boshqarish uchun asosiy sinflar.
Navigator 2.0 ning soddalashtirilgan foydalanish misoli:
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;
}
}
Shu tarzda, Navigator 2.0 navigatsiyani yaxshiroq nazorat qilish va uni brauzer URL kabi tashqi manbalar bilan integratsiya qilish imkonini beradi.