Junior — Middle
Կարող եք բացատրել Navigatior 2.0-ի կոնցեպցիան և հիմնական առանձնահատկությունները?
sobes.tech AI
Պատասխան AI-ից
Flutter-ում Navigator 2.0-ը նոր նավիգացիոն համակարգ է, որը ավելի մեծ վերահսկողություն է ապահովում երթուղիների և նավիգացիայի վիճակի վրա՝ համեմատած դասական Navigator 1.0-ի հետ:
Navigator 2.0-ի հիմնական առանձնահատկությունները՝
- Հայտարարական մոտեցում: փոխարենը push/pop մեթոդներ կանչելու, դուք նկարագրում եք ընթացիկ նավիգացիայի վիճակը էջերի ցանկով:
- URL և deep linking աջակցություն: հնարավոր է սինխրոնիզացնել նավիգացիայի վիճակը URL-ի հետ, ինչը կարևոր է վեբ հավելվածների համար:
- Բազմակողմանիություն: թույլ է տալիս իրականացնել բարդ նավիգացիոն սցենարներ, օրինակ՝ ներսի նավիգացիոն շղթաներ:
- RouterDelegate և RouteInformationParser: հիմնական դասեր նավիգացիան կառավարելու և URL-ները վերլուծելու համար:
Ներքևի օրինակ՝ 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;
}
}
Այսպիսով, Navigator 2.0-ը թույլ է տալիս ավելի լավ վերահսկողություն նավիգացիայի վրա և ինտեգրացիա՝ արտաքին աղբյուրների հետ, օրինակ՝ բրաուզերի URL-ով։