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. HTML-Bild <img> 1. Das <img>-Tag u...
Ich nenne diese Art von Fehler einen typischen „H...
Problembeschreibung MySQL wurde erfolgreich gesta...
Vor einiger Zeit stieß ich während der Entwicklun...
Dropdown-Menüs sind auch im wirklichen Leben weit...
Inhaltsverzeichnis 1. Herunterladen 2. Bereitstel...
Dieser Artikel beschreibt den detaillierten Vorga...
Dieser Artikel veranschaulicht anhand von Beispie...
Da Ubuntu 20.04 das Netzwerk über Netplan verwalt...
Im vorherigen Artikel habe ich den detaillierten ...
Bei unserer täglichen Arbeit führen wir manchmal ...
Schauen wir uns zunächst ein Beispiel an Code kopi...
Wir hoffen, dass dieser Artikel durch eine verglei...
Inhaltsverzeichnis 1. Nach dem Download entpacken...
Inhaltsverzeichnis Einige grundlegende Konfigurat...