Sobes.tech
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-თან.