Vuejs yönlendiricide isteğe bağlı parametre


111

Belirli bir bileşene iki şekilde yönlendirmem gerekiyor - biri parametresiz, diğeri yok. İsteğe bağlı parametreleri aradım ve bir şekilde fazla bilgi bulamıyorum.

Benim rotam:

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

Programlı olarak param ile çağırdığımda her şey yolunda

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

Ancak bunu nav aracılığıyla da aramam gerekiyor

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

offersBileşen pervane kabul

props: ['member'],

Ve bu şekilde kullanılan bileşen

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

Şimdi onu çalıştırmayı başardığım çirkin yol, rotayı çoğaltmak ve bunlardan birinin sahne almamasını sağlamak:

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

Aslında işe yarıyor, ancak bundan memnun değilim - ayrıca geliştirme modunda vuejs beni uyarıyor [vue-router] Duplicate named routes definition: { name: "offers", path: "/offers" }

Kesinlikle bileşen çağrısında isteğe bağlı param yapmanın bir yolu var :member="member"mı?

Yanıtlar:



1

Ek olarak, rotanızı aradığınız yerden farklı parametreler de gönderebilirsiniz.

<router-link
    :to="{
     name: 'ComponentName',
     params: { member: {}, otherParams: {} }
     }"
>

0

Gelişmiş eşleme modelleri için kılavuz şunları söylüyor :

vue-router, yol eşleştirme motoru olarak regexp'e giden yolu kullanır, bu nedenle isteğe bağlı dinamik segmentler, sıfır veya daha fazla / bir veya daha fazla gereksinim ve hatta özel normal ifade kalıpları gibi birçok gelişmiş eşleştirme modelini destekler. Bu gelişmiş modeller için belgelerine ve bunları vue yönlendiricide kullanma örneğine bakın.

regexp yolu sayfası / manual => https://github.com/pillarjs/path-to-regexp/tree/v1.7.0#parameters

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.