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.