что делает конструкция: router.beforeEach((to) => { ... });

router.beforeEach((to) => { ... }) — это глобальный навигационный гард (guard) во Vue Router.

Проще:

👉 код, который выполняется ПЕРЕД каждым переходом по роуту


Что именно происходит

router.beforeEach((to) => {
  // ...
})

Каждый раз, когда пользователь:

Vue Router:
1️⃣ собирается перейти на новый маршрут
2️⃣ вызывает beforeEach
3️⃣ ждёт его результат
4️⃣ либо продолжает переход, либо отменяет / перенаправляет


Параметры

Полная сигнатура:

router.beforeEach((to, from) => {})

Чаще используют to.


Что можно делать внутри

✅ Разрешить переход

return true

или ничего не возвращать


🔁 Перенаправить

return { path: '/login' }

⛔ Запретить

return false

Типичный пример — авторизация 🔐

router.beforeEach((to) => {
  if (to.meta.requiresAuth && !isAuth()) {
    return { path: '/login' }
  }
})
{
  path: '/profile',
  component: Profile,
  meta: { requiresAuth: true }
}

Когда именно выполняется

⏱ Порядок:

  1. beforeEach

  2. beforeResolve

  3. afterEach

📌 beforeEachсамый ранний хук


Частые кейсы использования

router.beforeEach((to) => {
  document.title = to.meta.title || 'App'
})

Важно ⚠️

router.beforeEach(async (to) => {
  await checkAuth()
})

Коротко

router.beforeEach — это фильтр маршрутов, который срабатывает перед каждым переходом

 


Revision #1
Created 2026-01-19 05:16:57 UTC by Nikolay
Updated 2026-01-19 05:17:43 UTC by Nikolay