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

Vue3 basierend auf der Skript-Setup-Syntax $refs-Verwendung

Inhaltsverzeichnis 1. Vue2-Syntax 2. Nutzung von ...

So installieren Sie den Chrome-Browser auf CentOS 7

Dieser Artikel beschreibt, wie Sie den Chrome-Bro...

Linux-Unlink-Funktion und wie man Dateien löscht

1. Unlink-Funktion Bei Hardlinks wird mit „unlink...

Weitere Möglichkeiten zur Verwendung von spitzen Klammern in Bash

Vorwort In diesem Artikel werden wir weitere Verw...

Vue3.0 implementiert die Fallstudie zum Lupeneffekt

Der zu erzielende Effekt ist: Festes Vergrößern a...

Super ausführliches Tutorial zur Installation und Konfiguration von MySQL8.0.22

Hallo zusammen, heute lernen wir die Installation...

Eine einfache Methode zum Zusammenführen und Entfernen doppelter MySQL-Tabellen

Szenario: Die gecrawlten Daten erzeugen eine Date...

Natives JS zur Implementierung der Paging-Klicksteuerung

Dies ist eine Interviewfrage, die die Verwendung ...

Formel und Berechnungsmethode zur Schätzung der Server-Parallelität

Vor Kurzem musste ich den Server erneut einem Str...