Vue Router — официальная библиотека маршрутизации для Vue.js. Она позволяет создавать SPA (Single Page Application) с несколькими «страницами», переключение между которыми происходит без перезагрузки браузера.
Ключевые аспекты
createRouter — функция для создания экземпляра роутера
routes — массив объектов, описывающих пути и компоненты
createWebHistory — режим history (чистые URL без #)
createWebHashHistory — режим hash (URL с #)
app.use(router) — подключение роутера к приложению
Базовая настройка
js
import { createRouter, createWebHistory } from'vue-router'constrouter=createRouter({ history:createWebHistory(), routes: [ { path:'/', component: Home }, { path:'/about', component: About } ]})app.use(router)
Частые ошибки
Забывают вызвать app.use(router)
Путают createWebHistory и createWebHashHistory
Не настраивают сервер для history mode (404 на прямых переходах)
Создают роуты без компонента или с опечатками в path
Рекомендации
Выносите конфигурацию роутера в отдельный файл (router/index.js)
Используйте createWebHistory для production
Для простых проектов createWebHashHistory не требует настройки сервера
Проверяйте настройку сервера при деплое с history mode
Введение и проблематика
Современные веб-приложения часто имеют несколько «страниц»: главная, о нас, контакты, профиль. Классический подход — перезагружать страницу при каждом переходе. SPA (Single Page Application) работает иначе: страница загружается один раз, а контент меняется динамически.
Vue Router — официальная библиотека маршрутизации для Vue.js. Она управляет URL и отображает нужные компоненты без перезагрузки страницы.
Базовая теория
Установка
bash
npminstallvue-router
Основные концепции
Route (маршрут) — соответствие между URL и компонентом
Router — управляет маршрутами и навигацией
router-view — место, где отображается текущий компонент
router-link — компонент для навигации (заменяет <a>)
constrouter=createRouter({ history:createWebHistory(), routes,scrollBehavior(to, from, savedPosition) {// Вернуться к сохранённой позиции при кнопке "Назад"if (savedPosition) {return savedPosition }// Иначе прокрутить к началу страницыreturn { top:0 } }})
Плюсы и минусы Vue Router
Плюсы
Минусы
Официальное решение от Vue
Дополнительная зависимость
Простой API
Требует изучения
Lazy loading из коробки
History mode требует настройки сервера
Поддержка вложенных маршрутов
Вопросы интервьюера
Q: Что такое Vue Router?
Официальная библиотека маршрутизации для Vue.js. Позволяет создавать SPA с несколькими страницами без перезагрузки браузера.
Q: Чем отличается createWebHistory от createWebHashHistory?
createWebHistory создаёт чистые URL (/about), но требует настройки сервера. createWebHashHistory использует URL с # (/#/about) и работает везде без настройки.
Q: Что такое router-view?
Компонент-плейсхолдер, куда Vue Router рендерит компонент текущего маршрута.
Q: Как сделать lazy loading компонента?
Использовать динамический импорт: component: () => import('./MyComponent.vue')