Перенаправления и псевдонимы
Перенаправления
Перенаправления также определяются в конфигурации маршрутов в опции routes
. Например, чтобы перенаправить с /a
на /b
:
const router = new VueRouter({
routes: [
{ path: '/a', redirect: '/b' }
]
})
Перенаправление может осуществляться и на именованный маршрут:
const router = new VueRouter({
routes: [
{ path: '/a', redirect: { name: 'foo' }}
]
})
Или даже можно указать функцию для организации динамического перенаправления:
const router = new VueRouter({
routes: [
{ path: '/a', redirect: to => {
// в функцию в качестве аргумента передаётся маршрут
// возвращаемым значением должна быть строка или объект пути
}}
]
})
Обратите внимание, что навигационные хуки не применяются на маршруте, который служит для перенаправления, только на его цель. В приведённом ниже примере добавление хуков beforeEnter
или beforeLeave
на маршрут /a
не будет иметь никакого эффекта.
Для демонстрации более сложных возможностей, обратите внимание на этот пример.
Псевдонимы
При перенаправлении, если пользователь переходит по пути /a
, то URL заменяется на /b
и затем уже /b
рассматривается как основной путь. В чём отличие псевдонимов?
В случае, когда псевдонимом /a
является /b
, при переходе пользователя на /b
, URL останется равным /b
, но маршрутизатор выполнит все действия так, как если бы он был равен /a
.
В виде конфигурации маршрутизатора вышесказанное может быть выражено так:
const router = new VueRouter({
routes: [
{ path: '/a', component: A, alias: '/b' }
]
})
Псевдонимы позволяют не ограничиваться вложенными структурами организуя связи URL и UI.
Этот пример демонстрирует более продвинутое использование возможностей.