vuejs vue link example component vue.js

vue.js - link - vuejs router goto



Param opcional en enrutador vuejs (1)

¿Solo añadiendo un signo de interrogación ? lo hará opcional.

{ path: ''/offers/:member?'', ... },

Funciona para Vue Router 2.0 en adelante.

Fuente: https://github.com/vuejs/vue-router/issues/235#issuecomment-245447122

Necesito enrutar a un determinado componente de dos maneras: una con un parámetro, otra sin. He buscado parámetros opcionales y de alguna manera no puedo encontrar mucha información.

Así que mi ruta:

{ path: ''/offers/:member'', component: Offers, name: ''offers'', props: true, meta: { guest: false, needsAuth: true } },

Cuando lo llamo con el parámetro programáticamente, todo está bien

this.$router.push({ path: /offers/1234 });

Sin embargo también necesito llamarlo vía nav como este

<router-link to="/offers">Offers</router-link>

El componente de offers acepta el prop.

props: [''member''],

Y componente utilizado como tal.

<Offers :offers="data" :member="member"></Offers>

Ahora, de la manera más fea que he logrado hacer que funcione es duplicar la ruta y hacer que uno de ellos no tome accesorios:

{ path: ''/offers'', component: Offers, name: ''offers'', props: false, meta: { guest: false, needsAuth: true } },

Realmente funciona, pero no estoy contento con eso, también en el modo dev vuejs me advierte [vue-router] Duplicate named routes definition: { name: "offers", path: "/offers" }

Seguramente hay una manera de hacer un parámetro opcional en la llamada del componente :member="member" ?