Вопрос проверяет знание разных способов обработки динамических параметров маршрута во Vue Router.
Смену динамического id можно обрабатывать через watch на $route.params, через beforeRouteUpdate или через ключ key у <router-view>. Каждый способ имеет свои особенности. watch и beforeRouteUpdate обновляют данные без пересоздания компонента. Использование key приводит к пересозданию компонента.
Динамический id в маршруте — частый сценарий при отображении страниц деталей.
Подходит для обновления данных без пересоздания компонента.
watch: {
'$route.params.id'(id) {
this.loadData(id);
}
}
Плюсы:
простой и понятный подход
сохраняется состояние компонента
Используется, если нужен контроль над навигацией.
beforeRouteUpdate(to, from, next) {
this.loadData(to.params.id);
next();
}
Плюсы:
доступ к обоим маршрутам
возможность отменить навигацию
Можно принудительно пересоздать компонент.
<router-view :key="$route.fullPath" />
Особенности:
вызываются хуки создания
состояние компонента сбрасывается
используется редко
Выбор способа зависит от того, нужно ли сохранять состояние компонента или пересоздавать его при смене id.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию