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