Показ маршрутов в точках выхода¶
30.09.2026
Директива RouterOutlet — заполнитель. Она отмечает место, где маршрутизатор отрисовывает компонент текущего адреса.
1 2 3 4 | |
1 2 3 4 5 6 7 8 9 10 | |
Если в приложении заданы такие маршруты:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
Когда пользователь открывает /products, Angular отрисовывает:
1 2 3 | |
Если пользователь возвращается на главную, Angular отрисовывает:
1 2 3 | |
При показе маршрута элемент <router-outlet> остаётся в DOM и служит ориентиром для следующих переходов. Angular вставляет содержимое маршрута сразу после точки выхода, соседним узлом.
1 2 3 4 | |
1 2 3 4 5 | |
Вложенность через дочерние маршруты¶
Когда приложение усложняется, маршруты привязывают не только к корневому компоненту. Тогда при смене URL меняется часть приложения, и у пользователя не возникает ощущения, что обновилась вся страница.
Такие вложенные маршруты называют дочерними. В приложение добавляют второй <router-outlet> — вдобавок к <router-outlet> в AppComponent.
В примере компонент Settings показывает нужную панель по выбору пользователя. У дочерних маршрутов в компоненте часто есть собственные <nav> и <router-outlet>.
1 2 3 4 5 6 7 8 | |
Дочернему маршруту, как и любому другому, нужны path и component. Его кладут в массив children родительского маршрута.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | |
Когда routes и <router-outlet> настроены, приложение работает с вложенными маршрутами.
Вторичные маршруты и именованные точки выхода¶
На странице может быть несколько точек выхода. Каждой задают имя, чтобы указать, какое содержимое куда попадает.
1 2 3 4 5 | |
Имя каждой точки выхода уникально. Задать или изменить его динамически нельзя. По умолчанию имя — 'primary'.
Angular сопоставляет имя точки выхода со свойством outlet маршрута:
1 2 3 4 5 | |
События жизненного цикла точки выхода¶
Точка выхода маршрутизатора порождает четыре события жизненного цикла:
| Событие | Описание |
|---|---|
activate | Создаётся новый экземпляр компонента |
deactivate | Компонент уничтожается |
attach | RouteReuseStrategy указывает точке выхода присоединить поддерево |
detach | RouteReuseStrategy указывает точке выхода отсоединить поддерево |
Обработчики добавляют обычным синтаксисом привязки события:
1 2 3 4 5 6 | |
Подробнее — в документации API RouterOutlet.
Контекстные данные для компонентов маршрута¶
Контекст для компонента маршрута часто тянет за собой глобальное состояние или сложную конфигурацию маршрутов. Чтобы обойтись без этого, у каждого RouterOutlet есть вход routerOutletData. Компонент маршрута и его потомки читают эти данные как сигнал через токен инъекции ROUTER_OUTLET_DATA. Настройка остаётся у точки выхода, и определения маршрутов менять не нужно.
1 2 3 4 5 6 7 8 9 10 11 12 | |
Компонент маршрута внедряет данные точки выхода через ROUTER_OUTLET_DATA:
1 2 3 4 5 6 7 8 9 10 | |
Когда Angular активирует Stats в этой точке выхода, внедрённые данные равны { layout: 'sidebar' }.
Если вход routerOutletData не задан, внедрённое значение по умолчанию равно null.
Что дальше¶
Как переходить к маршрутам с помощью Angular Router.
Источник: https://angular.dev/guide/routing/show-routes-with-outlets