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
Übersetzt aus der offiziellen Docker-Dokumentatio...
1. Einführung in Fastdfs 1. Was ist Fastdfs? Fast...
Inhaltsverzeichnis Docker-Version Installieren Si...
Inhaltsverzeichnis Fallbeispiel Lösung des Proble...
Docker unterstützt die Ausführung auf den folgend...
1. Docker-Installation und -Start yum installiere...
Überblick Heute werde ich hauptsächlich erklären,...
Inhaltsverzeichnis Zusammenfassung Umgebung und W...
Lösung 1: Verwenden Sie bedingten Import im HTML-...
Code kopieren Der Code lautet wie folgt: <!DOC...
Befehl zum Hinzufügen einer Route: 1.Route hinzuf...
Zunächst müssen Sie einige Eigenschaften von HTML...
<br />Wählen Sie das praktischste Thema aus....
1. Suchen Sie das MySQL-Image Docker PS 2. Geben ...
Ich habe einen Server, auf dem mehrere Docker-Con...