Вопрос проверяет знание механизмов перехвата навигации и контроля переходов между маршрутами во Vue Router.
Во Vue Router существуют глобальные, маршрутные и компонентные route-guards. Они позволяют выполнять код до или после навигации. Guards используются для проверки авторизации, загрузки данных и логирования. Каждый тип применяется на своём уровне. Это основной инструмент контроля навигации.
Route-guards во Vue Router — это специальные хуки, которые вызываются в процессе навигации и позволяют управлять переходами между маршрутами.
Работают для всех маршрутов приложения.
beforeEach
Вызывается перед каждым переходом
Может отменить или перенаправить навигацию
beforeResolve
Вызывается перед подтверждением маршрута
Все асинхронные guards уже выполнены
afterEach
Вызывается после завершения навигации
Не может отменять переход
Пример:
router.beforeEach((to, from, next) => {
next();
});
Задаются прямо в конфигурации маршрута.
{
path: '/admin',
component: Admin,
beforeEnter: (to, from, next) => {
next();
}
}
Используются для:
защиты конкретных маршрутов
изоляции логики
Определяются внутри компонента.
beforeRouteEnter
beforeRouteUpdate
beforeRouteLeave
Они позволяют управлять навигацией на уровне конкретного экрана.
Vue Router предоставляет несколько уровней route-guards, что позволяет гибко управлять навигацией от глобальной логики до поведения отдельных компонентов.