nickola105
@nickola105
начинающий

Как еще передать name в объект route?

Ребятушки, как передать в route name из комонента
есть вот такие пути:
export const routes = [
    //{ path: '/', component: HomePage },
    { path: '/menu', component: MenuPage, children: [
        { path: '', component: CategoriesPage, name: 'Меню'},
        { path: ':categoryId', component: CategoryPage, children: [
            { path: '', component: ProductsPage },
            { path: ':productId', component: ProductPage }
        ] } 
    ] },
    { path: '/profile', component: ProfilePage, name: 'Профиль' },
    { path: '/cart', component: CartPage, name: 'Корзина' },
    { path: '/promo', component: PromoPage, name: 'Акции' },
    { path: '/restourants', component: RestourantsPage, name: 'Рестораны' }
];

С не динамичными компонентами проблем нет задать имя, а вот как с динамичными быть, такими как
{ path: ':categoryId', component: CategoryPage,
как сделать что бы менялось name в зависимости от названия категории,
у меня сверху должна выводится текущая локация следующим кодом:
{{ $route.name }}
  • Вопрос задан
  • 518 просмотров
Решения вопроса 1
kulakoff
@kulakoff Куратор тега Vue.js
Vue.js developing
Кажется это не совсем верный подход пытаться изменять $route.name.
В CategoriesPage скорее всего вы получаете список с категориями, сохраняйте этот список в стор, т.е. у вас должен быть объект типа:
categories: 
  [{id: 1, name: 'Категория 1'},
   {id: 2, name: 'Категория 2'},
   {id: 3, name: 'Категория 3'}]

Далее при нажатии на ссылку с определенной категорией передавайте в компонент CategoryPage id категории и в этом компоненте по id получайте из стора название категории и отображайте его. Аналогично в CategoryPage вы должны забирать с бэкэнда список товаров и отображать его, при нажатии на определенный товар передаете id этого товара в компонент, который будет отвечать за его отображение и в нем по этому id получаете название товара.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы