Изучение
Module и вложенная навигация
Композиция Module функционального модуля через Mount приложения и независимые Navigator Scope.
Module и вложенная навигация
Функциональный модуль экспортирует NavigationModule с Route Definition. Приложение определяет положение Module через NavigationMount. Один и тот же каталог можно смонтировать в авторизованном и гостевом приложениях без наследования от сгенерированных роутеров.
Каждый NavigationScopeDefinition владеет независимым стеком Navigator. Связи между родительскими и дочерними Scope структурно описывают вложенность: NavigationOutlet отображает известный дочерний Scope, а NavigationActiveOutlet — активную ветвь оболочки.
Переключение ветвей сохраняет стеки соседних вкладок. Сброс выполняется явно:
await navigation.activateBranch(const NavigationScopeId('catalog-tab'));
await navigation.resetBranch(const NavigationScopeId('profile-tab'));
Если один тип Destination доступен через несколько Mount, автоматическое размещение неоднозначно. Вызывающий код передаёт NavigationMountId или полный NavigationTarget. Пакет отклоняет операцию и не выбирает первый подходящий Route.
Ключи Navigator остаются внутренней частью Session. Для прикладной идентификации используются типизированные Scope, Mount, Route и Entry ID, поэтому одинаковые по форме экраны не создают коллизии статических ключей.