intermediate

Vue Router

Моделируйте route records, nested routes, params, query, navigation guards и lazy route components.

Vue Router сопоставляет URL с компонентами через route records: paths, вложенные children, named views, params, query и meta. Navigation guards (`beforeEach`, per-route) контролируют доступ и загрузку данных.

					const routes = [
  { path: '/users/:id', component: UserView, props: true },
  { path: '/admin', component: AdminLayout, children: [...] },
];
				

Lazy `() => import('./Page.vue')` делит бандлы по маршрутам. Программная навигация — `router.push` с типизированными params в TypeScript.

На интервью: params vs query, nested routes и outlets, порядок guards, по возможности без тяжёлого fetch в guards.

Типовые ошибки: бесконечные redirect в guards, полный router state в Pinia, навигация без обработки rejected promises.

Компромисс: декларативные route tables против сложности guards, когда auth и загрузка данных переплетены.

Чеклист:

  • Явная модель nested routes.
  • meta для auth и title.
  • Lazy-load тяжёлых route components.
  • Обработка сбоев навигации в UI.