Sobes.tech
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.