Je dois acheminer vers un certain composant de deux manières - une avec un paramètre, une sans. J'ai recherché des paramètres facultatifs et je ne trouve pas beaucoup d'informations.
Donc mon itinéraire:
{
path: '/offers/:member',
component: Offers,
name: 'offers',
props: true,
meta: {
guest: false,
needsAuth: true
}
},
Quand je l'appelle avec le param par programmation, tout va bien
this.$router.push({ path: /offers/1234 });
Cependant, je dois aussi l'appeler via la navigation comme ceci
<router-link to="/offers">Offers</router-link>
Le offers
composant accepte le prop
props: ['member'],
Et composant utilisé comme tel
<Offers :offers="data" :member="member"></Offers>
Maintenant, la mauvaise façon dont j'ai réussi à le faire fonctionner est de dupliquer l'itinéraire et de faire en sorte que l'un d'eux ne prenne pas d'accessoires:
{
path: '/offers',
component: Offers,
name: 'offers',
props: false,
meta: {
guest: false,
needsAuth: true
}
},
Cela fonctionne réellement, mais je ne suis pas satisfait - également en mode dev, vuejs me prévient [vue-router] Duplicate named routes definition: { name: "offers", path: "/offers" }
Il y a sûrement un moyen de faire des paramètres facultatifs dans l'appel de composant :member="member"
?
De plus, vous pouvez également envoyer différents paramètres, d'où vous appelez votre itinéraire.
la source
Pour les modèles de correspondance avancés, le manuel dit :
chemin-vers-expression régulière page / manuel => https://github.com/pillarjs/path-to-regexp/tree/v1.7.0#parameters
la source