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)
1. Adresse herunterladen https://dev.mysql.com/do...
Testumgebung: C:\>systeminfo | findstr /c:&quo...
In diesem Artikelbeispiel wird der spezifische Co...
Hintergrund - Online Alert Ein Online-Server hat ...
Einführung Verwenden Sie einfaches jQuery+CSS, um ...
Geben Sie ein Shell-Skript unter Linux frei, um d...
Inhaltsverzeichnis 1. Grundkonzepte und Grundbefe...
Verwenden Sie HTML, um komplexe Tabellen zu erste...
Zunächst müssen Sie verstehen, warum Sie Verbindu...
1. Problem Die bei der Initialisierung von MySQL ...
Tomcat ist ein Open-Source-Webserver. Das auf Tom...
Inhaltsverzeichnis WebAPI DOM DOM-Baum Methode zu...
Dieser Artikel zeichnet den detaillierten Install...
Für viele HTML-Neulinge ist die Tabelle <table...
Das Backend verwendet das Framework thinkphp3.2.3...