Что такое Navigator 1.0 в Flutter?

«Что такое Navigator 1.0 в Flutter?» — вопрос из категории Навигация, который задают на 44% собеседований Flutter Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Navigator 1.0 — это императивный API для управления навигацией, основанный на стеке объектов Route. Он предоставляет простые методы для перехода между экранами (страницами).

Основные методы:

  • Navigator.push(context, route) — добавляет новый маршрут в стек.
  • Navigator.pop(context) — удаляет текущий маршрут из стека, возвращаясь назад.
  • Navigator.pushReplacement(context, newRoute) — заменяет текущий маршрут новым.
  • Navigator.pushAndRemoveUntil(context, newRoute, (route) => false) — добавляет новый маршрут и удаляет все предыдущие из стека.

Пример использования:

// Переход на экран DetailsScreen
Navigator.push(
  context,
  MaterialPageRoute(builder: (context) => const DetailsScreen()),
);

// Возврат на предыдущий экран
Navigator.pop(context);

Когда использовать:

  • Для простых приложений с предсказуемым линейным потоком экранов.
  • Когда не требуется сложная обработка глубоких ссылок (deep links) или декларативная конфигурация навигации.

Недостаток: Управление состоянием навигации (стеком) и синхронизация его с URL (на Web) или deep links (на мобильных) становится сложной задачей в больших приложениях, что привело к появлению Navigator 2.0 (Router API).