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

So fügen Sie in Linux stapelweise Dateipräfixe hinzu

Sie müssen „gt_“ vor den Dateinamen aller TXT-Dat...

Beheben des Problems, dass Notizendetails auf Webseiten grau werden

1. Wenn im Internet Explorer die relative Position...

MySQL-Benutzer und -Berechtigungen und Beispiele zum Knacken des Root-Passworts

MySQL-Benutzer und -Berechtigungen In MySQL gibt ...

Detaillierte Erklärung zu JavaScript Anti-Shake und Throttling

Inhaltsverzeichnis Entprellen Gaspedal Zusammenfa...

So verwalten Sie große Datei-Uploads und Breakpoint-Resumes basierend auf js

Inhaltsverzeichnis Vorwort Frontend-Struktur Back...

Webentwickler sind besorgt über die Koexistenz von IE7 und IE8

Ich habe heute IE8 installiert. Als ich auf die M...

Vier Möglichkeiten zum Erstellen von Objekten in JS

Inhaltsverzeichnis 1. Objekte durch Literalwert e...

Analyse des Quellcodes des React-Ereignismechanismus

Inhaltsverzeichnis Prinzip Quellcodeanalyse Deleg...

Vue implementiert Drag & Drop oder Klicken zum Hochladen von Bildern

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