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;
}
}
Бул ыкма навигацияны жакшыраак көзөмөлдөөгө жана аны браузердин URL сыяктуу тышкы булактар менен интеграциялоого мүмкүндүк берет.