Динамическая маршрутизация в Vue
Что делать, если у вас есть, например страница юзера, и вы хотите передавать динамические данные, такие как ID
юзера в URL? Для этого существует динамическая маршрутизация.
Пример маршрута с динамическим сегментом:
src/router.jsimport { createRouter, createWebHistory } from 'vue-router';
import User from './components/User.vue';
const routes = [
{
path: '/user/:id',
name: 'User',
component: User
}
];
const router = createRouter({
history: createWebHistory(),
routes
});
export default router;
Здесь :id
это динамический сегмент, который может быть любым значением, например /user/123
или /user/ivanov
. Теперь в компоненте User
мы можем получить это значение через объект route
. Таким образом, каждый раз, когда вы переходите на страницу /user/123
, значение id
будет доступно через $route.params.id
:
components/User.vue<script>
export default {
data() {
return {
name: 'Пользователи',
}
}
}
</script>
<template>
<h3>{{ name }} №:{{ $route.params.id }}</h3>
</template>