In diesem Artikel wird hauptsächlich die Breadcrumb-Funktion vorgestellt, die auf dem Matching von Vue-Router basiert, und mit Ihnen geteilt. Die Einzelheiten sind wie folgt: Wie im obigen Bild gezeigt, handelt es sich hierbei um einen üblichen Breadcrumb-Effekt. Im Allgemeinen weist der Inhalt von Breadcrumbs eine bestimmte hierarchische Beziehung auf. Nehmen wir das obige Bild als Beispiel: Rufen Sie zuerst die Homepage auf, klicken Sie dann auf die linke Navigation, um die Aktivitätslistenseite unter Aktivitätsverwaltung aufzurufen, und klicken Sie dann auf ein Datenelement, um die Aktivitätsdetailseite aufzurufen. Dies ist genau dasselbe Prinzip wie das Ergebnis, das durch das Mached-Attribut des Vue-Routers erzielt wird, sodass auf dieser Grundlage der Breadcrumb-Effekt erzielt werden kann! Hier habe ich die Breadcrumb-Komponente und die Navigationsmenü-Komponente von Elementui verwendet. Hier ist das endgültige Effektbild: Routing-KonfigurationProjektstruktur: Die seitliche Navigationsleiste wird auf der Startseite sowie auf den Seiten für elektronische und digitale Inhalte sowie für Kleidung und Schuhe angezeigt. Daher habe ich eine Layoutkomponente erstellt, die Komponenten dieser drei Routen auf die Komponente gerichtet und die Navigationsleiste und die Breadcrumbs in die Layoutkomponente geschrieben. Da die Implementierung dieser Funktion von der hierarchischen Verschachtelungsbeziehung der Routen abhängt, muss die Konfiguration der Routen im Voraus geplant werden. Meine Routenkonfiguration sieht wie folgt aus: const Routen = [ //Leere Route abgleichen und zur Root-Route umleiten { Weg:'', Umleitung: '/home', Meta:{ showInbreadcrumb:false } }, //Stammroute { Pfad: „/home“, Komponente: ()=>import('@/views/layout/index.vue'), Name: 'Heimat', Meta:{ Titel:"Home", showInbreadcrumb:true } }, //Elektronisch digital { Pfad: '/Elektronik', Name:'Elektronisch Digital', Komponente: ()=>import('@/views/layout/index.vue'), Weiterleitung: '/elektronik/computer', Meta:{ Titel:"Elektronisch Digital", showInbreadcrumb:true }, Kinder:[ { Pfad: „Computer“, Name: 'Computer', Komponente()=>Import('@/views/electronics/children/computer/index.vue'), Meta:{ Titel:"Computer", showInbreadcrumb:true } }, { Pfad: „Telefon“, Name: „Mobiltelefon“, Komponente: ()=>import('@/views/electronics/children/phone/index.vue'), Meta:{ Titel:"Mobiltelefon", showInbreadcrumb:true } }, { Pfad: „tv“, Name:'Fernseher', Komponente: ()=>import('@/views/electronics/children/tv/index.vue'), Meta:{ Titel:"Fernseher", showInbreadcrumb:true } } ] }, //Kleidung, Schuhe und Hüte { Pfad: '/Kleidung', Name:'Kleidung, Schuhe und Hüte', Komponente: ()=>import('@/views/layout/index.vue'), Weiterleitung: '/Kleidung/Oberteile', Meta:{ Titel: "Kleidung, Schuhe und Hüte", showInbreadcrumb:true }, Kinder:[ { Pfad: „tops“, Name:'Oberteile', Komponente: ()=>import('@/views/clothing/children/tops/index.vue'), Meta:{ Titel:"Oberteile", showInbreadcrumb:true } }, { Pfad: „unterer“, Name:'Unterteile', Komponente: ()=>import('@/views/clothing/children/lower/index.vue'), Meta:{ Titel:"Unterteile", showInbreadcrumb:true } }, { Pfad: „Schuhe“, Name: 'Schuhe', Komponente: ()=>import('@/views/clothing/children/shoes/index.vue'), Meta:{ Titel: „Schuhe“, showInbreadcrumb:true } } ] }, //Setze es ans Ende. Wenn keine der vorherigen Routen übereinstimmt, wird diese Route übereinstimmen und zur Stammroute umgeleitet { Weg:'*', umleiten:'/', Meta:{ showInbreadcrumb:false } }, ] Hier habe ich die Routen für Zuhause, Elektronik, Kleidung, Schuhe und Hüte konfiguriert. Diese drei sind Routen der ersten Ebene, darunter haben Elektronik, Digital und Kleidung, Schuhe und Hüte Routen der zweiten Ebene. In Meta habe ich die Daten angepasst. ShowInbreadcrumb wird verwendet, um zu bestimmen, ob in den Breadcrumbs angezeigt werden soll. Titel ist der in den Breadcrumbs angezeigte Name. Abrufen von Routinginformationen Vorlagenteil: ///src/views/layout/index.vue <Vorlage> <div Klasse="Layout"> <!-- Seitliche Navigationsleiste --> <div Klasse="Seitenmenü"> <el-Menü Standardmäßig aktiv = "0" Klasse="el-menu-vertical-demo" > <div v-for="(item,index) in routes" :key="index" :index="index+''"> <!-- Kein sekundäres Menü --> <el-menu-item :index="index+''" v-if="!item.children"> <router-link :to="{name:item.name}">{{item.meta.title}}</router-link> </el-Menüelement> <!-- Mit sekundärem Menü --> <el-Untermenü :index="index+''" v-else> <template slot="title">{{item.meta.title}}</template> <el-menu-item v-for="(item_,index_) in item.children" :key="index_" :index="index+'-'+index_"> <router-link :to="{name:item_.name}">{{item_.meta.title}}</router-link> </el-Menüelement> </el-Untermenü> </div> </el-Menü> </div> <div Klasse="Inhalt"> <!-- Brotkrümel --> <div Klasse="Brotkrümel"> <el-breadcrumb-Trennzeichen-Klasse="el-icon-arrow-right"> <el-breadcrumb-item v-for="(item,index) in breadcrumb" :key="index" :to="{ path: item.path}">{{item.meta.title}}</el-breadcrumb-item> </el-breadcrumb> </div> <!-- Routing-Ausgang --> <Router-Ansicht></Router-Ansicht> </div> </div> </Vorlage> js-Teil: Standard exportieren { Daten(){ zurückkehren { } }, berechnet:{ // Seitennavigation Datenrouten(){ // Alle Routing-Informationen aus $router.options abrufen und filtern. Return this.$router.options.routes.filter((item)=>{ return item.meta.showInbreadcrumb }); }, // Breadcrumb-Daten breadcrumb(){ // Filtern Sie gemäß dem Feld „showInbreadcrumb“ im Meta der Routenkonfiguration. let matchedArr = this.$route.matched.filter((item)=>{ return item.meta.showInbreadcrumb} ); // Da die Startseite etwas Besonderes ist, muss sie in den Breadcrumbs immer zuerst angezeigt werden. Wenn keine Routing-Informationen zur Startseite vorhanden sind, fügen Sie diese manuell vorne hinzu, wenn (matchedArr [0].meta.title !== 'Startseite') { matchedArr.unshift( { Pfad: „/home“, Meta:{ Titel:"Home", showInbreadcrumb:true } }, ) } gib matchedArr zurück; }, } } Hinweis: Nachdem Sie this.$route.matched erhalten haben, können Sie das Ergebnis nicht direkt anhängen und dann filtern, da sonst die Seite durcheinander geraten und ein Fehler gemeldet wird. Sie sollten zuerst filtern, wodurch ein neues Array zurückgegeben wird, und dann die Homepage-Informationen beurteilen und anhängen Endergebnis Dies ist das Ende dieses Artikels über die Implementierung der Breadcrumbs-Funktion basierend auf Vue-Router-Matching. Weitere relevante Vue-Router-Matching-Breadcrumbs-Inhalte finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Lösung für das Timeout-Problem bei der Installation von Docker-Compose mit PIP
>>: Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.22
Der folgende Inhalt stellt den Prozess und die Lö...
Inhaltsverzeichnis Startoptionen Befehlszeile Lan...
In diesem Artikel wird anhand eines Beispiels bes...
1. Prüfen Sie, ob das Ereignis aktiviert ist Vari...
Inhaltsverzeichnis Berechnete Daten initialisiere...
In diesem Artikel finden Sie den spezifischen Cod...
Grundlegendes Konzept: Funktionsprinzip von Macvl...
1. Docker Compose Übersicht Compose ist ein Tool ...
Inhaltsverzeichnis Benutzerdefiniertes Docker-Net...
Ich habe erst vor Kurzem angefangen, mich mit Dat...
In diesem Dokument werden die Installations- und ...
Wir alle wissen, dass Jmeter eine native Ergebnis...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis Vorwort Initialisieren des Pro...
1. PC-Reset Initialisierung im PC-Stil /* normali...