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

Detailliertes Tutorial zur Nginx-Installation

1. Kurze Einführung in Nginx Nginx ist ein kosten...

Installations-Tutorial zur dekomprimierten Version von MySQL 5.7.23 für WinX64

Detailliertes Installations-Tutorial zur Dekompri...

jQuery realisiert den Bildverfolgungseffekt

In diesem Artikel wird der spezifische Code von j...

MySQL 8.0.18 fügt Benutzer zur Datenbank hinzu und erteilt Berechtigungen

1. Es wird empfohlen, den Root-Benutzer für die A...

Einige Fähigkeiten, die Sie beim Erstellen von Webseiten kennen müssen

1. Z-Index ist in IE6 ungültig. In CSS wird die E...