Junior — Middle
¿Puede explicar la concepto y las características principales de Navigatior 2.0?
sobes.tech AI
Respuesta de la IA
Navigator 2.0 en Flutter es un nuevo sistema de navegación que ofrece mayor control sobre el enrutamiento y el estado de navegación en comparación con el Navigator 1.0 clásico.
Características principales de Navigator 2.0:
- Enfoque declarativo: en lugar de llamar a métodos push/pop, describes el estado actual de la navegación a través de una lista de páginas.
- Soporte para URL y deep linking: se puede sincronizar el estado de navegación con la URL, lo cual es importante para aplicaciones web.
- Flexibilidad: permite implementar escenarios de navegación complejos, como pilas de navegación anidadas.
- RouterDelegate y RouteInformationParser: clases clave para gestionar la navegación y analizar URLs.
Ejemplo de uso simplificado de 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;
}
}
De esta manera, Navigator 2.0 permite un mejor control de la navegación e integrarla con fuentes externas, como la URL del navegador.