2016-09-28 2 views
0

Может ли кто-нибудь сказать мне, есть ли способ получить доступ к параметрам маршрута непосредственно внутри объектов маршрута ?, Мне нужно будет потребовать разные компоненты на основе объекта маршрута.Параметры маршрута доступа в объекте route/subRoutes в Vuejs

router.map({ 
    '/dashboard/*': { 
    component: Home 
    }, 
    '/dashboard/:module': { 
    component: Module, 
    subRoutes: { 
     '/': { 
     component: require('./components/'+this.$route.params.module+'.vue') 
     }, 
     '/:tab': { 
     component: require('./components/'+this.$route.params.tab+'.vue') 
     } 
    } 
    } 
}); 

ответ

3

Вы не можете требовать того или иного компонента в зависимости от параметров маршрута непосредственно в конфигурации маршрутизатора. Вместо этого вы можете создать компонент-оболочку, который будет использовать компонент или другое в зависимости от параметров маршрута, поскольку параметры маршрута доступны из любых компонентов.

Как написано в vue-routerdocumentation:.

Объект маршрут будет введен в каждый компонент в приложение вю-маршрутизатор с поддержкой как это $ маршрута, и будет обновляться каждый раз, когда выполняется переход маршрута ,

Каждый из ваших компонентов имеют доступ к текущему маршруту через this.$route поэтому вы могли бы сделать что-то вроде этого:

<template> 
    <component-a v-if="$route.params.param1 === 'a'></component-a> 
    <component-b v-if="$route.params.param1 === 'b'></component-b> 
</template> 
+1

Как jeerbl сказал, вы должны проверить параметры на представлении. Однако я бы рекомендовал использовать функцию рендеринга вместо шаблона – Posva

+0

Спасибо, я спрашивал, потому что я видел что-то подобное в маршрутизаторе Voie https://github.com/inca/voie-example/blob/master/spa/states /user/index.js – Ahmad

2

Я не видел использование $route.params внутри объектов маршрута. Что вы можете сделать, хотя, в вашем вю вы можете динамически загружать различные компоненты на основе вашего $route.params

<component-a v-if="$route.params == 'a'"></component-a> 

 Смежные вопросы

  • Нет связанных вопросов^_^