Lösung für das Routing-Hervorhebungsproblem von Vue-Komponenten

Lösung für das Routing-Hervorhebungsproblem von Vue-Komponenten

Vorwort

Früher habe ich den Cache verwendet, um die Routen hervorzuheben. Ich bin alle Routen durchgegangen und habe bei jedem Anklicken den aktuellen Wert der Route hervorgehoben und ihm den Wert „aktiv“ zugewiesen. Später stellte ich fest, dass es beim Aktualisieren nicht funktionierte und der hervorgehobene Bereich den Standardwert 0 annahm. Hier spreche ich hauptsächlich über die Lösung dieses Problems.

Die erste Möglichkeit besteht darin, die Klasse folgendermaßen hinzuzufügen:

.router{
        Schriftart: 12px/40px „Microsoft YaHei“;
        Hintergrund: rosa;
        Hintergrund: rosa;
        Farbe: weiß;
        Cursor: Zeiger;
        Textausrichtung: zentriert;
        Anzeige: Inline-Block;
        Breite: 40px;
        Hintergrund: rosa;
        &.istAktiv{
            Hintergrund: blau;
            Farbe: rot;
        }
    }

Die zweite Möglichkeit besteht darin, den Pfad zu überwachen:

Der Originalcode lautet wie folgt:

<Vorlage>
<div id="Haupt">
    <ul style="Höhe: 40px;Hintergrund: rosa;">
        <li class="router" v-for="(item,index) in items" :key="index" style="float:left;" :class="item.isActive?'isActive':''" @click="routerTo(item,index)">
            <span >{{item.name}}</span>
        </li>
    </ul>
    <Router-Ansicht></Router-Ansicht>
    </div>
    
</Vorlage>
<Skript>
    Standard exportieren {
        Daten () {
            zurückkehren {
                aktivIndex2:'0',
                Artikel:[
                    {Name:'twoPage',Code:'twoPage',Pfad:'/twoPage',Standardsymbol:erforderlich('@/assets/icon/BehaviorRank-default.png'),
                    activeIcon:erfordern('@/assets/icon/behaviorrank-active.png'),isActive:true},
                    {name:'drei',code:'drei',pfad:'/drei',defaultIcon:require('@/assets/icon/ChannelAllocation-default.png'),
                    activeIcon:erfordern('@/assets/icon/ChannelAllocation-active.png'),isActive:false},
                    {name:'vier',code:'vier',pfad:'/vier',defaultIcon:erfordern('@/assets/icon/myReport-default.png'),
                    activeIcon:erfordern('@/assets/icon/myReport-active.png'),isActive:false},
                ],
            }
        },
        Methoden:{
            routerTo(Element,Index) {
                 für (lass i = 0; i < this.items.length; i++) {
                    this.items[i].isActive=false
                    
                }
                this.items[index].isActive=true
                dies.$router.push({name:item.name})
               
            },
        }
    }
</Skript>
<style lang='less'>
#hauptsächlich{
    .router{
        Schriftart: 12px/40px „Microsoft YaHei“;
        Hintergrund: rosa;
        Hintergrund: rosa;
        Farbe: weiß;
        Cursor: Zeiger;
        Textausrichtung: zentriert;
        Anzeige: Inline-Block;
        Breite: 40px;
        Hintergrund: rosa;
        
    }
    .istAktiv{
            Hintergrund: blau;
            Farbe: rot;
        }
    
}

</Stil>

Wirkung:

Wenn Sie jedoch auf „Aktualisieren“ klicken, wird der hervorgehobene Index auf die Initialisierungsposition 0 gesetzt.

So lösen Sie dieses Problem

Eine Möglichkeit hierfür besteht darin, sessionStorage zwischenzuspeichern. Bei jedem Klick wird der Wert im Cache gespeichert und aktualisiert, um ihn aus der Variablen abzurufen. Wenn die Variable keinen Wert hat, wird der Wert aus dem Cache abgerufen. Manche Leute finden es jedoch möglicherweise mühsam, weiterhin Ein- und Auszahlungen vorzunehmen.

Eine andere Möglichkeit besteht darin, die Route während der Initialisierung abzurufen und die entsprechende Navigation entsprechend den verschiedenen Routen zu aktivieren

erstellt(){
            // var path=window.location.hash.slice(2); //Dies ist auch akzeptabel, wenn kein Parameter vorhanden ist, wird aber nicht empfohlen var path=this.$route.name //Dies wird empfohlen console.log(path)
            if(Pfad){
                für (lass i = 0; i < this.items.length; i++) {
                    this.items[i].isActive=false
                }
                Schalter(Pfad){
                    Fall 'zweiSeiten':
                    diese.items[0].isActive=true;
                    brechen;
    
                    Fall 'drei':
                    diese.items[1].isActive=true;
                    brechen;
    
                    Fall 'vier':
                    diese.items[2].isActive=true;
                    brechen;
                }
            }
        },

Anhang: Vue klickt auf den spezifischen Code der aktuellen Route hervorheben

Funktionsanzeige:

Komponentencode:

Fügen Sie „exact“ zum Etikett hinzu

.router-link-active{
 Hintergrund: rgba(255,255,255,0,8);
 Farbe: grau;
 }

<Vorlage>
 <Navigation>
  <ul>
  <li>
   <router-link to="/" exact>Blog</router-link>
   <router-link to="/AddBlog" exact>Einen Blog schreiben</router-link>
  </li>
  </ul>
 </nav>
</Vorlage>
 
<Skript>
 Standard exportieren {
  Name: "bolgheader"
 }
</Skript>
 
<Stilbereich>
 ul{
 Listenstiltyp: keiner;
 Textausrichtung: zentriert;
 Rand: 0;
 }
 li{
 Anzeige: Inline-Block;
 Rand: 0 10px;
 }
 A{
 Farbe: RGB (102, 119, 204);
 Textdekoration: keine;
 Polsterung: 12px;
 Rahmenradius: 5px;
 Schriftgröße: 20px;
 }
 nav{
 Hintergrund: #eee;
 Polsterung: 30px 0;
 Rand unten: 40px;
 }
 .router-link-active{
 Hintergrund: rgba(255,255,255,0,8);
 Farbe: grau;
 }
</Stil> 

Zusammenfassen

Dies ist das Ende dieses Artikels über die Lösung des Routenhervorhebungsproblems von Vue-Komponenten. Weitere relevante Inhalte zur Routenhervorhebung von Vue-Komponenten finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Beispiel für die Methode „Navigationsleiste hervorheben (Routenmenü hervorheben)“ von Vuejs
  • Methode zum Einstellen der Hervorhebung der Vue-Route-Navigationsmenüleiste
  • Implementierungsmethode für sekundäre Navigationsumschaltung und Hervorhebung im Vue-Router
  • Lösung für das Problem der verschachtelten Hervorhebung von Vue-Routen
  • Sekundäres Routing – Hervorhebungsproblem und Konfigurationsmethode in vue2
  • Vue klickt auf die aktuelle Route, um ein kleines Beispiel hervorzuheben
  • Das Vue-Projekt implementiert die Einstellung von Menüelementen entsprechend der Routenhervorhebung
  • Eine kurze Diskussion über die Verschachtelung von Nebenrouten und die Hervorhebung von Nebenrouten in Vue

<<:  So überprüfen Sie die Version des Kali Linux-Systems

>>:  Grafisches Tutorial zur Installation und Konfiguration von MySQL Community Server 8.0.11

Artikel empfehlen

Verbesserungen am Webserver zur Verbesserung der Website-Leistung

<br />Im ersten Abschnitt dieser Reihe haben...

So verwenden Sie den Linux-Befehl whatis

01. Befehlsübersicht Der Befehl whatis sucht in e...

Achten Sie bei der Webseitenerstellung auf die Verwendung von HTML-Tags

HTML hat versucht, sich von der Präsentation weg ...

Was sind die Unterschiede zwischen SQL und MySQL

Was ist SQL? SQL ist eine Sprache zum Betrieb von...

Eine kurze Diskussion über Yahoos 35 Regeln zur Front-End-Optimierung

Zusammenfassung: Ob bei der Arbeit oder im Vorste...

Beispieldemonstration der Vuex-Modularisierung und Namespaces

1. Zweck: Machen Sie den Code leichter wartbar un...

So erzielen Sie mit CSS einen Daten-Hotspot-Effekt

Die Wirkung ist wie folgt: analysieren 1. Hier se...

HTML+CSS+jQuery imitiert den Such-Hotlist-Tab-Effekt mit Screenshots

Code kopieren Der Code lautet wie folgt: <!DOC...

Ideen zum Erstellen von Welleneffekten mit CSS

Zuvor habe ich mehrere Möglichkeiten vorgestellt,...

Detaillierte Erklärung des Inline-Formats von HTML-Tabellen

Inline-Format <colgroup>…</colgroup> ...

So legen Sie die UTF-8-Kodierung in einer MySQL-Datenbank fest

Ändern Sie die Datei /etc/my.cnf oder /etc/mysql/...

Ist das Tag „li“ ein Blockelement?

Warum kann es die Höhe festlegen, aber im Gegensat...