Junior — Middle
Vai jūs varat izskaidrot Navigatior 2.0 koncepciju un galvenajām iezīmēm?
sobes.tech AI
Atbilde no AI
Navigator 2.0 Flutter — tas ir jauns navigācijas sistēmas veids, kas sniedz lielāku kontroli pār maršrutēšanu un navigācijas stāvokli salīdzinājumā ar klasisko Navigator 1.0.
Galvenās Navigator 2.0 iezīmes:
- Deklaratīva pieeja: vietā, lai izsauktu push/pop metodes, jūs aprakstāt pašreizējo navigācijas stāvokli, izmantojot lapu sarakstu.
- URL un dziļās saites atbalsts: iespējams sinhronizēt navigācijas stāvokli ar URL, kas ir svarīgi tīmekļa lietojumprogrammām.
- Elastība: ļauj īstenot sarežģītus navigācijas scenārijus, piemēram, iekļautas navigācijas virsmas.
- RouterDelegate un RouteInformationParser: galvenās klases navigācijas pārvaldībai un URL parsēšanai.
Vienkāršots Navigator 2.0 lietošanas piemērs:
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ādējādi Navigator 2.0 ļauj labāk kontrolēt navigāciju un integrēt to ar ārējiem avotiem, piemēram, pārlūkprogrammas URL.