Sobes.tech
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.