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. 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. <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 wechselnMethoden:{ 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. 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:
|
<<: Der Grund, warum MySQL den B+-Baum als zugrunde liegende Datenstruktur verwendet
>>: Zusammenfassung der Wissenspunkte zum CSS-Frontend (unbedingt lesen)
Bei Zellen können die hellen Rahmenfarben individ...
Dieser Artikel stellt hauptsächlich den relevante...
1. Kurze Einführung in Nginx Nginx ist ein kosten...
Detailliertes Installations-Tutorial zur Dekompri...
In diesem Artikel wird der spezifische Code von j...
Ausgehend von diesem Artikel dient eine neue Arti...
Inhaltsverzeichnis Vorwort Prototypische Vererbun...
Inhaltsverzeichnis Vorwort SVG generieren Einführ...
1. Es wird empfohlen, den Root-Benutzer für die A...
Vorwort Anwendungsszenario: Wahrscheinlich muss d...
Verwenden des UNION-Operators Union : Wird verwen...
Ich habe einige Qt-Schnittstellenprogramme geschr...
Vorwort Was ist Datentypkonvertierung? Der Standa...
1. Einleitung In letzter Zeit erlebe ich es oft, ...
1. Z-Index ist in IE6 ungültig. In CSS wird die E...