Detaillierte Erklärung zur Verwendung selbstverschachtelter Vue-Baumkomponenten

Detaillierte Erklärung zur Verwendung selbstverschachtelter Vue-Baumkomponenten

In diesem Artikel erfahren Sie, wie Sie die selbstverschachtelte Baumkomponente von Vue verwenden. Der spezifische Inhalt ist wie folgt

Rendern


Vorsichtsmaßnahmen

  • Komponenten sind verschachtelt, und wenn Sie einen Namen definieren, wird dieser als Komponentenname definiert.
  • Bei der Auswahl einzelner oder mehrerer Benutzer werden die Eigenschaften der übergeordneten Komponente der obersten Ebene verwendet. Da die Eigenschaft nicht synchron innerhalb der Komponente geändert werden kann, wird ein anderer Wert desselben Typs mithilfe von Daten registriert, um Änderungen innerhalb der Komponente zu empfangen, und mithilfe von Update wird er synchron mit der Eigenschaft aktualisiert.
  • Erweitern Sie die Komponente, um mit dem Laden der Benutzerliste zu beginnen
<Vorlage>
  <ul v-show="isShow" ref="Benutzerbaum">
    <li v-for="(item, idx) in Benutzerliste" :key="idx">
      <div>
        <!-- Mehrfachauswahl des Benutzerbaums -->
        <Eingabe
          Klasse="primär"
          Typ="Kontrollkästchen"
          v-Modell="Benutzer auswählen1"
          :Wert="Artikel.Benutzer-ID"
          v-show="istCheck"
        />
        <!-- Einzelauswahl-Benutzerbaum -->
        <span
          @click="beiAuswahl(Element)"
          :Stil="{
            Farbe: selectUser1 == item.userId ? 'rot' : '',
            Cursor: 'Zeiger',
          }"
        >
          <i class="iconfont icon-user"></i> {{ item.userName }}</span
        >
        <!-- Benutzerbaum erweitern -->
        <i
          Klasse = "Iconfont-Symbol rechts"
          v-if="Artikel.habeKind"
          @click="expandItem(idx)"
        ></i>
      </div>
      <!-- Verschachtelter Benutzerbaum -->
      <Benutzerbaum
        :Benutzer-ID="Artikel.Benutzer-ID"
        v-if="Artikel.habeKind"
        :is-show.sync="item.isShow"
        :select-user.sync="Benutzer1 auswählen"
        :select-users.sync="Benutzer auswählen1"
        :is-check="istCheck"
      ></Benutzerbaum>
    </li>
  </ul>
</Vorlage>

<Skript> 
Standard exportieren {
  Name: "user-tree", //Definiert als Komponentenname, andernfalls wird bei der Selbstverschachtelung ein Fehler gemeldet, dass die Komponente selbst nicht registriert ist. Eigenschaften: {
    isShow: {//Ob die Benutzerliste erweitert werden soll, Typ: Boolean,
      Standard: false
    },
    userId: {//Aktuelle übergeordnete ID des Benutzerbaums
      Typ: Nummer,
      Standard: 0
    },
    selectUser: {//Aktuell ausgewählte Benutzer-ID
      Typ: Nummer,
      Standard: 0
    },
    selectUsers: {//Mehrfachauswahl Benutzertyp: Array,
      Standard: Funktion () {
        zurückkehren [];
      }
    },
    isCheck: {//Ob mehrere Optionen ausgewählt werden sollen Typ: Boolean,
      Standard: false
    }
  },

  Daten: () => ({
    userList: [], //Benutzerliste selectUser1: 1, //Einzelauswahl von Benutzern selectUsers1: [], //Mehrfachauswahl von Benutzern isLoad: true
  }),
  betrachten:
    selectUser1 () {//Einzelauswahl des Benutzers, aktuelle Ebene mit übergeordneter Ebene synchronisiertif (this.selectUser1 != this.selectUser) {
        dies.$emit("update:select-user", dies.selectUser1);
      }
    },
    selectUser () {//Einzelauswahl des Benutzers, aktuelle Ebene wird mit übergeordneter Ebene synchronisiertif (this.selectUser1 != this.selectUser) {
        dies.selectUser1 = dies.selectUser;
      }
    },
    selectUsers1 () {//Mehrfachauswahl, aktuelle Ebene mit übergeordneter Ebene synchronisiertif (this.selectUsers1 != this.selectUsers) {
        dies.$emit("update:select-users", dies.selectUsers1);

      }
    },
    selectUsers () {//Mehrfachauswahl, aktuelle Ebene mit übergeordneter Ebene synchronisiertif (this.selectUsers1 != this.selectUsers) {
        dies.selectUsers1 = dies.selectUsers;
      }
    },
    istAnzeigen() {
      wenn (dies.istAnzeigen) {
        dies.getUserList();
      }
    }
  },
  Methoden: {
    onSelect (item) {//Einzelauswahl Benutzer this.$emit("update:select-user", item.userId);

    },

    expandItem (idx) {//Benutzerbaum erweitern if (this.userList[idx].isShow) {
        diese.Benutzerliste[idx].isShow = false;
      } anders {
        diese.Benutzerliste[idx].isShow = true;
      }

    },
    getUserList () {
      var Liste = [];
      für (var i = 0; i < 10; i++) {
        var Benutzer-ID = Math.round(Math.random() * 10000);
        Liste.push({
          Benutzer-ID: Benutzer-ID,
          Benutzername: "Benutzer-" + Benutzer-ID,
          haveChild: i % 2, //Ob ein Teilbaum vorhanden ist isShow: false //Ob der Teilbaum angezeigt werden soll });
      }
      diese.Benutzerliste = Liste;


    },

  },
  montiert () {

    if (this.userId == 1) {//Die aktuelle übergeordnete Benutzer-ID ist die Stammbenutzer-ID, also laden und erweitern Sie den Benutzerbaum this.getUserList(this.userId);
    }
  }
};
</Skript>

Verwenden der Tree-Komponente

<div>{{ Benutzer auswählen }}</div>
    <div>
      <span v-for="item in selectUsers" :key="item">【{{ item }}】</span>
    </div>
    <Benutzerbaum
      :Benutzer-ID="1"
      :ist-show="wahr"
      :select-user.sync="Benutzer auswählen"
      :select-users.sync="Benutzer auswählen"
      :ist-check="true"
></Benutzerbaum>

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Vue verwendet Refs, um den Wertprozess in verschachtelten Komponenten abzurufen
  • Die Keep-Alive-Komponente in Vue implementiert das Caching mehrstufiger verschachtelter Routen
  • Detaillierte Erklärung der Kommunikation zwischen hierarchisch verschachtelten Komponenten in der Vue-Frontend-Entwicklung
  • Vue Keep-Alive ermöglicht es einzelnen Komponenten, bei der Verschachtelung mehrerer Komponenten zu überleben und nicht zerstört zu werden.
  • Beispiel für die Implementierung verschachtelter Unterkomponenten in Vue-Komponenten
  • Lösen Sie das Problem der verschachtelten Überwachung von Browserfensteränderungen in mehreren Komponenten auf einer einzigen Vue-Seite
  • Verwenden Sie form-create, um benutzerdefinierte Vue-Komponenten und verschachtelte Formularkomponenten dynamisch zu generieren
  • Beispielcode für verschachtelte Vue-Eltern-Kind-Komponenten
  • Zwei Möglichkeiten zur Implementierung der mehrschichtigen Vue-Komponentenverschachtelung (Testbeispiel)
  • Beispielfreigabe für die Parameterübergabe verschachtelter Komponenten in Vue

<<:  Detaillierte Erläuterung des Ansichtsbeispiels zur MySQL-Ansichtsverwaltung [Hinzufügen-, Löschen-, Ändern- und Abfragevorgänge]

>>:  Einführung in MySQL-Trigger, Erstellen von Triggern und Analyse von Nutzungsbeschränkungen

Artikel empfehlen

10 inhaltliche Prinzipien zur Verbesserung der Website-Performance

<br />Englische Adresse: http://developer.ya...

CSS-Tricks zum Erstellen von Welleneffekten

Es war schon immer sehr schwierig, Welleneffekte ...

Vuex implementiert einen einfachen Einkaufswagen

In diesem Artikelbeispiel wird der spezifische Co...

Mehrere praktische Szenarien zur Implementierung der Ersetzungsfunktion in MySQL

REPLACE Syntax REPLACE(String,from_str,to_str) Da...

Miniprogramm zur Implementierung des Paging-Effekts

In diesem Artikelbeispiel wird der spezifische Co...

Tutorial zur Installation von Elasticsearch 7.6.2 in Docker

Docker installieren Sie müssen Docker installiere...

Beschreiben Sie kurz die Replikation der MySQL-Überwachungsgruppe

Originaltext: https://dev.mysql.com/doc/refman/8....

Eine kurze Diskussion über vier Lösungen für Vue Single Page SEO

Inhaltsverzeichnis 1.Bereitstellung der serversei...

Bootstrap 3.0 Studiennotizen Rastersystemprinzip

Durch die kurze Einführung in den beiden vorherig...

Konvertieren von XHTML-CSS-Seiten in Druckerseiten

<br />In der Vergangenheit musste zum Erstel...

Der Unterschied und die Verwendung von LocalStorage und SessionStorage in Vue

Inhaltsverzeichnis Was ist LocalStorage Was ist S...