Sobes.tech
Junior — Middle

Môžete vysvetliť koncept a hlavné vlastnosti Navigatior 2.0?

sobes.tech AI

Odpoveď od AI

Navigator 2.0 v Flutter je nov sistem navigácie, ktorý ponúka väčšiu kontrolu nad routovaním a stavom navigácie v porovnaní s klasickým Navigator 1.0.

Hlavné vlastnosti Navigator 2.0:

  • Deklaratívny prístup: namiesto volania metód push/pop opisujete aktuálny stav navigácie prostredníctvom zoznamu stránok.
  • Podpora URL a deep linking: je možné synchronizovať stav navigácie s URL, čo je dôležité pre webové aplikácie.
  • Flexibilita: umožňuje implementovať zložité scenáre navigácie, napríklad vložené navigačné zásobníky.
  • RouterDelegate a RouteInformationParser: kľúčové triedy na správu navigácie a analýzu URL.

Príklad zjednodušeného použitia 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()),
        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;
  }
}

Týmto spôsobom Navigator 2.0 umožňuje lepšiu kontrolu nad navigáciou a jej integráciu s externými zdrojmi, ako je URL prehliadača.