Мне нужно выполнить маршрутизацию к определенному компоненту двумя способами: один с параметром, другой без него. Я искал необязательные параметры и почему-то не могу найти много информации.
Итак, мой маршрут:
{
path: '/offers/:member',
component: Offers,
name: 'offers',
props: true,
meta: {
guest: false,
needsAuth: true
}
},
Когда я вызываю его программно с параметром, все в порядке
this.$router.push({ path: /offers/1234 });
Однако мне также нужно вызвать его через навигацию, например
<router-link to="/offers">Offers</router-link>
offers
Компонент принимает опору
props: ['member'],
И компонент, используемый как таковой
<Offers :offers="data" :member="member"></Offers>
Уродливый способ заставить его работать - это продублировать маршрут и заставить один из них не использовать реквизиты:
{
path: '/offers',
component: Offers,
name: 'offers',
props: false,
meta: {
guest: false,
needsAuth: true
}
},
Это действительно работает, но меня это не устраивает - также в режиме разработки vuejs предупреждает меня [vue-router] Duplicate named routes definition: { name: "offers", path: "/offers" }
Конечно, есть способ сделать необязательный параметр в вызове компонента :member="member"
?
Кроме того, вы также можете отправлять разные параметры, откуда вы вызываете свой маршрут.
источник
Для расширенных шаблонов сопоставления в руководстве говорится :
путь к странице регулярного выражения / руководство => https://github.com/pillarjs/path-to-regexp/tree/v1.7.0#parameters
источник