Junior — Middle
Kas saaksite selgitada Navigatior 2.0 kontseptsiooni ja peamisi omadusi?
sobes.tech AI
Vastus AI-lt
Navigator 2.0 Flutter on uus navigatsioonisüsteem, mis annab suurema kontrolli marsruutimise ja navigeerimisoleku üle võrreldes klassikalise Navigator 1.0-ga.
Navigator 2.0 peamised omadused:
- Deklaratiivne lähenemine: selle asemel, et kutsuda push/pop meetodeid, kirjeldad oma navigeerimisolekut läbi lehtede nimekirja.
- URL ja sügava lingi tugi: võimaldab sünkroniseerida navigeerimisolekut URL-iga, mis on oluline veebirakenduste jaoks.
- Paindlikkus: võimaldab rakendada keerukaid navigeerimisskeeme, näiteks sisseehitatud navigeerimiskihte.
- RouterDelegate ja RouteInformationParser: põhiklassid navigeerimise haldamiseks ja URL-i analüüsimiseks.
Lihtsustatud Navigator 2.0 kasutamise näide:
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;
}
}
Seega võimaldab Navigator 2.0 paremini kontrollida navigeerimist ja integreerida seda väliste allikatega, näiteks brauseri URL-iga.