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