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

Detaillierte Erklärung des daily_routine Beispielcodes in Linux

Schauen Sie sich zunächst den Beispielcode an: #/...

Einführung in MySQL-Rollenfunktionen

Inhaltsverzeichnis Vorwort: 1. Einführung in die ...

Docker verwendet Root, um in den Container zu gelangen

Führen Sie zuerst den Docker-Container aus Führen...

Detailliertes Tutorial zum Konfigurieren der lokalen Yum-Quelle in CentOS8

Die Centos8-Distribution wird über die BaseOS- un...

VSCode-Entwicklung UNI-APP Konfigurations-Tutorial und Plugin

Inhaltsverzeichnis Vorne geschrieben Vorsichtsmaß...

Detaillierte Erläuterung des Docker-Arbeitsmodus und -Prinzips

Wie in der folgenden Abbildung dargestellt: Wenn ...

Preistabelle mit CSS3 implementiert

Ergebnis: Implementierungscode html <div id=&q...

Analyse des Ereignisschleifenmechanismus von js

Vorwort Wie wir alle wissen, ist JavaScript im Ke...

Detaillierte Erklärung der Vuex-Umgebung

Inhaltsverzeichnis Erstellen Sie eine Vuex-Umgebu...

So setzen Sie Ihr Linux-Passwort zurück, wenn Sie es verloren haben

1. Das Startmenü besteht darin, den Cursor in die...