Ich habe ein Website-Layout mit Bootstrap wie folgt (und es muss so bleiben):VueJS - Subnav-Komponenten außerhalb der Router-Ansicht?
- Navigations Spalte auf der linken Seite:
<div class='row'> <div class='col-md-2'> <main-nav-component></main-nav-component> <sub-nav-component></sub-nav-component> <!-- Problem Area --> </div> <div class='col-md-10'> <router-view></router-view> <!-- MAIN CONTENT SECTION --> </div> </div>
Das ist mir zwei Spalten über die gesamte Website gibt
- A „contents“ Spalte auf der rechten
verschiedenen Seiten (aber nicht alle), die im Hauptinhaltsbereich angezeigt werden (über den router-view
) müssen auch ihr eigenes Subnav unterhalb des Hauptnavs anzeigen. Es gibt verschiedene Sub-Navs für verschiedene Seiten und ich kann nicht herausfinden, wie man das in VueJS macht. Irgendwelche Ideen?
Es sieht aus wie du bist Präsentation der 'profile-nav' Komponente nur wenn' zone == profile'. Aber was ist, wenn Sie völlig verschiedene Komponenten präsentieren wollten? Listen Sie einfach eine ganze Reihe von Komponenten in diesem Header-Bereich auf und machen Sie eine ähnliche 'v-if = 'zone == someOtherComponent' für jede Komponente? – Garfonzo
Das hat perfekt funktioniert. Jetzt habe ich auf jedem 'router'-Element ein' meta'-Feld mit dem Namen 'subNavComponent' und gebe ihm den Wert des gewünschten Subnaves wie' building-sub-nav' oder 'contact-sub-nav'. Dann habe ich in meinem 'App.vue'' 'was ein berechneter Wert ist, der entweder den Wert zurückgibt, der in der 'Meta' des Router-Objekts gespeichert ist, oder eine leere Zeichenfolge zurückgibt . Funktioniert genau so, wie ich es mir erhofft hatte! Danke :) –
Garfonzo
Weg zu gehen @Garfonzo! Gute Arbeit! –