Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про React Router: vue, router, dynamic

Какие способы существуют для реагирования на смену динамического id в маршруте?

Вопрос проверяет знание разных способов обработки динамических параметров маршрута во Vue Router.

Короткий ответ

Смену динамического id можно обрабатывать через watch на $route.params, через beforeRouteUpdate или через ключ key у <router-view>. Каждый способ имеет свои особенности. watch и beforeRouteUpdate обновляют данные без пересоздания компонента. Использование key приводит к пересозданию компонента.

Длинный ответ

Динамический id в маршруте — частый сценарий при отображении страниц деталей.

Способ 1. watch на params

Подходит для обновления данных без пересоздания компонента.

watch: {
  '$route.params.id'(id) {
    this.loadData(id);
  }
}

Плюсы:

  • простой и понятный подход

  • сохраняется состояние компонента

Способ 2. beforeRouteUpdate

Используется, если нужен контроль над навигацией.

beforeRouteUpdate(to, from, next) {
  this.loadData(to.params.id);
  next();
}

Плюсы:

  • доступ к обоим маршрутам

  • возможность отменить навигацию

Способ 3. key у router-view

Можно принудительно пересоздать компонент.

<router-view :key="$route.fullPath" />

Особенности:

  • вызываются хуки создания

  • состояние компонента сбрасывается

  • используется редко

Вывод

Выбор способа зависит от того, нужно ли сохранять состояние компонента или пересоздавать его при смене id.

Уровень

  • Рейтинг:

    4

  • Сложность:

    5

Навыки

  • React Router

    React Router

Ключевые слова

#vue

#router

#dynamic

Подпишись на React Developer в телеграм