Junior — Middle
Можете ли објаснити концепт и главне особине Navigatior 2.0?
sobes.tech АИ
Одговор од АИ
Navigator 2.0 u Flutter-u je novi sistem navigacije koji pruža veću kontrolu nad rutiranjem i stanjem navigacije u poređenju sa klasičnim Navigator 1.0.
Glavne karakteristike Navigator 2.0:
- Deklarativni pristup: umesto pozivanja push/pop metoda, opisujete trenutno stanje navigacije putem liste stranica.
- Podrška za URL i deep linking: možete sinhronizovati stanje navigacije sa URL-om, što je važno za web aplikacije.
- Fleksibilnost: omogućava implementaciju složenih scenarija navigacije, poput ugnježdenih stekova navigacije.
- RouterDelegate i RouteInformationParser: ključne klase za upravljanje navigacijom i parsiranje URL-ova.
Primer pojednostavljenog korišćenja 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;
}
}
Na ovaj način, Navigator 2.0 omogućava bolju kontrolu nad navigacijom i njenu integraciju sa spoljnim izvorima, poput URL-a pretraživača.