Detaillierte Erklärung zur Verwendung von Vue+Element zum Implementieren des Tags oben auf der Seite

Detaillierte Erklärung zur Verwendung von Vue+Element zum Implementieren des Tags oben auf der Seite

Bildbeschreibung hier einfügen

Wie schreibt man diese Art von Tag? Um die Ideen zusammenzufassen:

1. Seiten-Rendering

Seite 1 zeigt, dass das Array im Speicher gespeichert werden kann, indem das Array durchgeschleift wird. (1) Stellen Sie vor dem Speichern fest, ob doppelte Daten vorhanden sind. Wenn doppelte Daten vorhanden sind, löschen Sie diese zuerst und fügen Sie sie dann hinzu.
(2) Direkter Push ohne Duplizierung

 addTag: (Status, Tag) => {
    const { fullPath, Pfad, Meta, Abfrage } = Tag
    wenn (tag.Pfad === '/login') {
      return false
    }
    const findIndex = state.tags.findIndex(Element => Element.Pfad === tag.Pfad)
    console.log(Index finden)
    wenn (findIndex >= 0) {
      state.tags.splice(findIndex, 1, { vollständigerPfad, Pfad, Meta, Abfrage })
    } anders {
      state.tags.push({vollständigerPfad, Pfad, Meta, Abfrage})
    }
  },

2 Wenn diese Methode zum Hinzufügen einer Route ausgelöst wird und die Abhörroute eintritt, wird diese Methode aufgerufen, um das Routenobjekt auf diese aktuelle Instanz zu übertragen.

berechnet: {
aktuelleRoute() {
      gib dies zurück.$route
    },
},
 betrachten:
    $route: {
      handler(Wert) {
        wenn (Wert.Name) {
          dies.addTags()
        }
      },
      // Tiefe Beobachtungsüberwachung deep: true
    }
  },
  Methoden:{
  addTags() {
  //this.$store.dispatch wird zuerst an die Aktion gesendet, die die Methode in der Mutation asynchron verarbeitet und den Tag-Wert im Status this.$store.dispatch('user/addTag', this.currentRoute) ändert.
    },}

Zu diesem Zeitpunkt befinden sich bereits Werte im Tags-Array. Da die Standardfarbe Weiß ist, ist sie auf der Seite nicht sichtbar. Der nächste Schritt besteht darin, das ausgewählte Tag hervorzuheben.
1element hat einen Parameter, der festgelegt werden kann. Sie können die Dokumentation überprüfen.
2 Ob der ausgewählte Tag-Wert mit der über die aktuelle Route eingegebenen Seite übereinstimmt. Wenn dies der Fall ist, ist es „true“.

<span v-for="(tag, index) in tags" :key="index" class="tag-span">
        <el-tag
          :schließbar="istSchließbar"
          :effect="setTagColor(tag)"
          @close="closeTags(tag)"
          @click="toTagRoute(tag)"
        >
          {{ tag.meta.title }}
        </el-tag>
      </span>
 Methoden:{
 setTagColor(tag) {
      gibt this.currentRoute.path === tag.path zurück? „dunkel“: „einfach“
    },
    }

An diesem Punkt ist das Rendern und die Auswahl des Tags abgeschlossen.

2. Tags hin und her wechseln

Methoden:{
 toTagRoute(tag) {
      dies.$router.push({
        Pfad: tag.vollständigerPfad || tag.pfad
      })
    },
}

3. Löschen eines Tags

1 Da es sich um ein Array handelt, können Sie nicht feststellen, welches der Benutzer gelöscht hat. Sie müssen es also durchsuchen, um das aktuell vom Benutzer ausgewählte Tag zu finden. Löschen Sie es dann und aktualisieren Sie den Wert im Speicher.
2. Löschen Sie das aktuelle Tag. Welches Tag ist hervorgehoben? Hier ist das Label vor dem gelöschten Label, welches das letzte Element des Arrays ist.

Methoden:{
	 closeTags(tag) {
	      console.log(tag, 4444)
	      dies.$store.dispatch('Benutzer/delTag', tag)
	      this.toLastTagRouter(this.$store.state.user.tags)//Zu löschendes vorheriges Tag markieren
	    },
     toLastTagRouter(tags) {
      //Beachten Sie, dass die hier übergebenen Tags gelöscht werden. Sie können also „splice==》“ nicht verwenden, um das ursprüngliche Array zu ändern. „slice==》“ ändert das ursprüngliche Array nicht und übernimmt das letzte Element des Arrays. const latestView = tags.slice(-1)[0] //Das letzte Element des Tags-Arrays console.log(latestView)
      if (latestView !== undefiniert && latestView.path !== undefiniert) {
        const { fullPath, meta, path, query } = neuesteAnsicht
        this.$router.push({ vollständigerPfad, Meta, Pfad, Abfrage })
      }
    },
}
//Aktion
 delTag({ commit }, tag) {
    commit('delTag', tag)
  },
//Mutation
delTag: (Status, Tag) => {
    //Das entries()-Objekt wird zu einem durchquerbaren Array [0, {name: a, age: '20'}]
    //ForEach und map können hier auch verwendet werden for (const [i, v] of state.tags.entries()) {
      if (v.Pfad === tag.Pfad) {
        Zustand.tags.splice(i, 1)
        brechen
      }
    }
  },

Alle Tags löschen

Methoden:{
 schließeAlleTags() {
      // Alle Tags schließen, nur eines übrig lassen this.$store.dispatch('user/delAllTags')
      const { fullPath, meta, path, query } = this.$store.state.user.tags[0]
      // Springe zu den verbleibenden Tag-Routen this.$router.push({ fullPath, meta, path, query })
    },
}
//Aktion
delAllTags({ commit }) {
    commit('AlleTags löschen')
  },
//Mutation
 delAllTags: (Status) => {
    Zustand.tags.splice(1, Zustand.tags.Länge)
  },

Dies ist das Ende dieses Artikels über die Implementierung des Top-Tags der Seite mit vue+element. Weitere relevante Inhalte zum Top-Tag von vue-Elementen 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:
  • Detaillierte Erklärung der Interaktion zwischen Tags in Vue Elementui und anderen Elementen auf der Seite
  • Vue + Element verwendet dynamisches Laderouting, um den Vorgang zum Anzeigen der dreistufigen Menüseite zu implementieren
  • vuex+axios+element-ui implementiert ein Beispiel für den Ladevorgang von Seitenanforderungen
  • Implementierung der Login-Seite basierend auf vue-cli3 und element
  • Vue + Element realisiert die Funktion zum Drucken von Seiten

<<:  Der Grund, warum MySQL den B+-Baum als zugrunde liegende Datenstruktur verwendet

>>:  Zusammenfassung der Wissenspunkte zum CSS-Frontend (unbedingt lesen)

Artikel empfehlen

Detaillierter Prozess zum Dekomprimieren und Installieren von mysql5.7.17 zip

1. Adresse herunterladen https://dev.mysql.com/do...

js zur Implementierung einer Überprüfungscode-Interferenz (dynamisch)

In diesem Artikelbeispiel wird der spezifische Co...

Shell-Skript zur Überwachung des MySQL-Master-Slave-Status

Geben Sie ein Shell-Skript unter Linux frei, um d...

Tutorials der MySQL-Reihe für Anfänger

Inhaltsverzeichnis 1. Grundkonzepte und Grundbefe...

Workerman schreibt den Beispielcode des MySQL-Verbindungspools

Zunächst müssen Sie verstehen, warum Sie Verbindu...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.23

Dieser Artikel zeichnet den detaillierten Install...

Tipps zum Festlegen von HTML-Tabellenrändern

Für viele HTML-Neulinge ist die Tabelle <table...

So konfigurieren Sie pseudostatisches und clientadaptives Nginx

Das Backend verwendet das Framework thinkphp3.2.3...