Users
Profile
requires login (guard="auth")
About
diff --git a/playground/pages/profile.html b/playground/pages/profile.html index 1cf0d2ef..f0bbe6c0 100644 --- a/playground/pages/profile.html +++ b/playground/pages/profile.html @@ -12,8 +12,8 @@Profile
requires login (guard="auth")
Users
List from the server (view="users"). Nested layout: aura-router-ssr on shell;
flat leaf-only markup → no full adopt (cold fetch / structure-error).
transition-order
Текущий режим: parallel
transition-order
Хук fade
Core не содержит встроенных анимаций — только фазы pipeline и staged mount. Хук fade анимирует [data-aura-view-root] на фазах transitionOut / transitionIn. При prefers-reduced-motion анимация пропускается.
Смените порядок на панели, затем несколько раз переключитесь A ↔ B — шапка и URL-бар остаются, меняется только timing перехода.
diff --git a/public/features/animations/page-a.html b/public/features/animations/page-a.html index e3101564..1876e205 100644 --- a/public/features/animations/page-a.html +++ b/public/features/animations/page-a.html @@ -7,7 +7,7 @@Страница A
Страница B
Кнопка «Назад» в браузере вернёт страницу A с той же анимацией выхода.
diff --git a/public/features/hydration/about.html b/public/features/hydration/about.html index 5323ff64..3777ce85 100644 --- a/public/features/hydration/about.html +++ b/public/features/hydration/about.html @@ -13,6 +13,6 @@About
diff --git a/public/features/hydration/index.html b/public/features/hydration/index.html index d8a344a0..fbf03839 100644 --- a/public/features/hydration/index.html +++ b/public/features/hydration/index.html @@ -23,8 +23,8 @@
@@ -78,7 +78,7 @@ About
diff --git a/public/features/hydration/page-b.html b/public/features/hydration/page-b.html index 8b1722e7..26e6d391 100644 --- a/public/features/hydration/page-b.html +++ b/public/features/hydration/page-b.html @@ -10,6 +10,6 @@Страница B
diff --git a/public/features/phase-update/hash.html b/public/features/phase-update/hash.html index fadaa4a3..2e7469bd 100644 --- a/public/features/phase-update/hash.html +++ b/public/features/phase-update/hash.html @@ -5,9 +5,9 @@Hash — якорь
Активный якорь: #—
Переключайте якоря: view не remount-ится, обновляются только URL и scroll.
@@ -22,8 +22,8 @@Hash — якорь
diff --git a/public/features/phase-update/intro.html b/public/features/phase-update/intro.html
index 1c6beefe..59453c66 100644
--- a/public/features/phase-update/intro.html
+++ b/public/features/phase-update/intro.html
@@ -6,9 +6,9 @@ Update shortcut
Search — смена query
Pathname тот же, меняется только ?tab=…. Pipeline: runUpdate() — load → history → update-хуки. Без render и unmount.
Search — смена query
Hash — смена якоря
Pathname и search те же, меняется только #…. Processor не запускается: history + scroll. View и хуки не вызываются.
Hash — смена якоря
:id remount — не update, свой HTML на id
Один leaf remount/:id, param меняется, но view — шаблон user-:id.html: viewKey разный (user-1.html ≠ user-2.html). Engine выбирает FULL, не runUpdate() — synthetic exit/enter leaf, render, unmount, ready.
:id remount — не update, свой HTML на id
Param-update — update shortcut для :id
Тот же leaf update/:id и тот же viewKey (user-shell.html на все id). Pipeline: runUpdate() — меняется param id, view остаётся в DOM.
Param-update — update shortcut для :id
Search — query
Активная вкладка: tab=—
Переключайте вкладки: меняется только query. «Назад» восстановит предыдущее значение tab.
Search — query
Пользователь 1
Параметр id: —
Переключайте User 1 ↔ User 2: synthetic exit/enter leaf, render, unmount.
@@ -21,7 +21,7 @@Пользователь 1
Пользователь 2
Параметр id: —
Переключайте User 1 ↔ User 2: synthetic exit/enter leaf, render, unmount.
@@ -21,7 +21,7 @@Пользователь 2
Shell пользователя
Параметр id: —
Переключайте User 1 ↔ User 2 ↔ User 3: тот же viewKey, меняется только param id.
Shell пользователя
Продвинутые сценарии
Приоритет маршрутов
При нескольких кандидатах побеждает более специфичный pattern: статический сегмент → динамический :id → catch-all *.
Приоритет маршрутов
Третий уровень вложенности
Цепочка outlet: корневой → users-layout → user-layout → конечный view. Профиль и настройки одного пользователя разделяют layout второго уровня.
Catch-all и 404
Маршрут path="*" обрабатывает path, для которого нет более специфичного совпадения. URL в адресной строке сохраняется; страница не перезагружается.
Страница не найдена
Сработал catch-all path="*": для запрошенного path нет более специфичного маршрута.
Настройки пользователя
Третий уровень: users-layout → user-layout → view настроек.
Профиль пользователя
Конечный view второго layout-уровня. Настройки — sibling-маршрут на том же уровне вложенности.
diff --git a/public/features/routing-advanced/users-about.html b/public/features/routing-advanced/users-about.html index bc5b4c9e..94ab4cd4 100644 --- a/public/features/routing-advanced/users-about.html +++ b/public/features/routing-advanced/users-about.html @@ -3,8 +3,8 @@О разделе Users
Статический сегмент about имеет приоритет над :id — path /users/about не интерпретируется как профиль.
Список пользователей
Index-маршрут ветки /users.
Основы маршрутизации
Плоские маршруты
Два независимых path ссылаются на разные view. При переходе между «Страница A» и «Страница B» роутер выгружает текущий view и монтирует новый в тот же outlet. Шапка и панель навигации остаются на месте — они объявлены вне роутера.
Плоские маршруты
История браузера
-Клик по ссылке с aura-router-link добавляет запись в session history. Последовательность A → B → «Назад» вернёт страницу A: и URL, и контент восстановятся без перезагрузки документа.
Клик по ссылке с data-aura-link добавляет запись в session history. Последовательность A → B → «Назад» вернёт страницу A: и URL, и контент восстановятся без перезагрузки документа.
Откройте A, перейдите на B, затем нажмите «Назад» в браузере.
diff --git a/public/features/routing-basics/page-a.html b/public/features/routing-basics/page-a.html index 322788a1..4303499f 100644 --- a/public/features/routing-basics/page-a.html +++ b/public/features/routing-basics/page-a.html @@ -3,7 +3,7 @@Страница A
Плоский маршрут без промежуточного layout.
diff --git a/public/features/routing-basics/page-b.html b/public/features/routing-basics/page-b.html index 20623290..b3dc1aa4 100644 --- a/public/features/routing-basics/page-b.html +++ b/public/features/routing-basics/page-b.html @@ -3,8 +3,8 @@Страница B
Sibling-маршрут на том же уровне дерева, что и страница A.
Кнопка «Назад» в браузере вернёт страницу A без перезагрузки вкладки.
diff --git a/public/features/routing-nested/index.html b/public/features/routing-nested/index.html index 67f8fd28..23e107ad 100644 --- a/public/features/routing-nested/index.html +++ b/public/features/routing-nested/index.html @@ -23,12 +23,12 @@
Вложенные маршруты
Layout и вложенный outlet
Маршрут с атрибутом layout рендерит шаблон с собственным <aura-outlet>. Дочерние маршруты монтируют view во внутренний outlet. При переходе «User 1» → «User 2» layout остаётся в DOM, обновляется только содержимое slot.
Layout и вложенный outlet
Index-дочерний маршрут (path=".")
Точка (path=".") задаёт view по умолчанию для ветки. URL остаётся /features/routing-nested/users — без дополнительного сегмента и без редиректа.
Index-дочерний маршрут (path=".")
Sibling-маршруты и сегмент :id
Под layout — два sibling-маршрута: index (path=".", список) и профиль (path=":id"). Переход «Список» → «User 2» — смена sibling: layout остаётся, меняется конечный view. Переход «User 1» → «User 2» — update того же маршрута :id: view тот же, меняются параметр id и URL.
Sibling-маршруты и сегмент :id
Профиль пользователя
Динамический сегмент :id. Переход между пользователями — update конечного view без размонтирования layout.
Список пользователей
Index-маршрут (path=".") — URL /features/routing-nested/users без дополнительного сегмента.