Methode zur Implementierung rekursiver Komponenten basierend auf der Vue-Technologie

Methode zur Implementierung rekursiver Komponenten basierend auf der Vue-Technologie

beschreiben

Dieser Artikel stellt eine Methode zur Implementierung rekursiver Komponenten basierend auf der Vue-Technologie vor. Es ist sehr einfach, Vue zu verwenden, um die Liste der ersten und zweiten Ebene anzuzeigen. Wenn Sie jedoch unendlich viele Ebenen erreichen möchten, reicht es nicht aus, v-for einfach nacheinander anzuwenden. Zu diesem Zeitpunkt müssen Sie die rekursive Methode verwenden. Die sogenannte Rekursion besteht darin, sich selbst kontinuierlich aufzurufen. Die rekursive Komponente besteht darin, ihre eigene Komponente kontinuierlich aufzurufen, um eine unendliche Listenanzeige zu erreichen. Wie unten dargestellt:

Code-Implementierung

1. Baumkomponente

Erstellen Sie eine tree.vue-Komponente im Verzeichnis.

<!--Baum-Baumkomponente-->
<Vorlage>
  <div Klasse="Container">
      <div v-for="Element in treeData" :key="Element">
        <div Klasse="Zeile" @click="erweitern(Element)">
            <span
                ref="Symbol"
                Klasse = "Symbol-allgemein"
                :Klasse="{
                    'Symbol nach unten': Element.Kinder,
                    'Symbol-Radio': !item.children,
                    „Symbol drehen“: item.isExtend
                }"
            ></span>
            <span class="title">{{ Artikel.title }}</span>
        </div>
        <div v-if="isExtend(item)" Klasse="Kinder">
            <tree :tree-data="item.children" :is-extend-all="isExtendAll" />
        </div>
  </div>
  </div>
</Vorlage>

<Skript>
Standard exportieren {
    Requisiten: {
        // Komponentendaten treeData: {
            Typ: Array,
            Standard: [],
        },
        // Ob standardmäßig alles erweitert werden soll, isExtendAll: {
            Typ: Boolean,
            Standard: true,
        }
    },
    Methoden: {
        // Erweitere die Liste extend(item) {
            wenn (Element.Kinder) {
                } item.isExtend = !item.isExtend;
            }
        },
        istErweitern(Element) {
            const isExtend = !item.isExtend && true;
            gibt dies zurück.isExtendAll ? isExtend : !isExtend;
        }
    }
}
</Skript>

<Stilbereich>
.container {
    Schriftgröße: 14px;
}
.Reihe {
    Anzeige: Flex;
    Elemente ausrichten: zentrieren;
    Cursor: Zeiger;
    Rand unten: 10px;
}
/* ----------- Symbolstil START ------------- */
.icon-gemeinsam {
    Anzeige: Inline-Block;
    Übergang: alle 0,3 s;
}
.Symbol nach unten {
    Breite: 0;
    Höhe: 0;
    Rand: 4px durchgehend transparent;
    Rahmen oben: 6px durchgezogen #000;
    Rahmen unten: keiner;
}
.icon-radio {
    Breite: 6px;
    Höhe: 6px;
    Hintergrund: #000;
    Randradius: 50 %;
}
.Symbol drehen {
    transformieren: drehen (-90 Grad);
}
/* ----------- Symbolstil ENDE ------------- */
.Titel {
    Rand links: 10px;
}
.Kinder {
    Polsterung links: 20px;
}
</Stil>

2. Referenzen

Importieren Sie die Baumkomponente dort, wo Sie sie benötigen.

<Vorlage>
 <Baum: Baumdaten="Baumdaten" />
</Vorlage>

<Skript>
importiere Tree aus „./components/tree.vue“;

Standard exportieren {
 Komponenten:
  Baum,
 },
 Daten() {
  zurückkehren {
   Baumdaten: [
    {
     Titel: „Ebene 1 Liste 1“,
     Kinder: [
      {
       Titel: 'Sekundäre Liste 1',
                            Kinder: [
                                {
                                    Titel: „Level 3 Liste 1“,
                                }
                            ]
      },
      {
       Titel: 'Sekundäre Liste 2',
      }
     ]
    },
    {
     Titel: 'Ebene 1 Liste 2',
     Kinder: [
      {
       Titel: 'Sekundäre Liste 1',
      },
      {
       Titel: 'Sekundäre Liste 2',
      }
     ]
    },
    {
     Titel: „Level 1 Liste 3“,
     Kinder: [
      {
       Titel: „Level 3 Liste 1“,
      },
      {
       Titel: „Level 3 Liste 2“,
      },
      {
       Titel: „Level 3 Liste 3“,
      }
     ]
    }
   ]
  }
 }
}
</Skript>

Rendern

Zusammenfassen

Diese Komponente implementiert nur die Datenanzeige und einige grundlegende Funktionen, was sicherlich nicht den tatsächlichen Anforderungen einiger Projekte entspricht. Wenn Sie sie verwenden möchten, müssen Sie sie auf dieser Grundlage erweitern und verbessern. (Wenn Sie diese Komponente beispielsweise zum Implementieren des linken Menüs verwenden, können Sie die Daten selbst konfigurieren und die Komponentenvorlage leicht ändern, um einen Klicksprung zu erreichen.)

Komponente Funktion

  • Klicken zum Erweitern und Reduzieren
  • Alles erweitern

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:
  • Rekursive Vue.js-Komponente zur Implementierung eines Baummenüs (Beispielfreigabe)
  • Vuejs verwendet rekursive Komponenten, um Baumverzeichnisse zu implementieren
  • Verwenden rekursiver Vue.js-Komponenten zum Implementieren eines einklappbaren Baummenüs (Demo)
  • Vue.js lernt rekursive Komponenten
  • Rekursive Vue2-Komponente zur Implementierung eines Baummenüs
  • Die rekursive Komponente von Vue.js realisiert einen Organisationsstrukturbaum und eine Personalauswahlfunktion
  • Rekursive Vue.js-Komponente zum Erstellen eines Baummenüs
  • Vue rekursive Komponente + Vuex Entwicklungsbaumkomponente Tree - einfache Implementierung einer rekursiven Komponente
  • Vue rekursive Komponente tatsächlicher Kampf einfache Baumsteuerung Beispielcode
  • Vue verwendet rekursive Komponenten, um Beispielcode für Baumsteuerelemente zu schreiben

<<:  Tutorial zur Installation und Konfiguration des Linux-Prozessmanagement-Tools Supervisor

>>:  Tutorial zur Bereitstellung und Installation von MySQL 8.0.18 unter Windows 7

Artikel empfehlen

Beispiel für das Schreiben von mobilem H5 zum Aufrufen einer APP (IOS, Android)

iOS 1. URL-Schema Diese Lösung ist grundsätzlich ...

Lösung für die langsame Reaktion des Tomcat-Servers

1. Analytisches Denken 1. Beseitigen Sie die eige...

Detaillierte Erklärung zur Verwendung des Basis-Tags in HTML

In requireJS gibt es eine Eigenschaft namens base...

Über Front-End JavaScript ES6 Details

Inhaltsverzeichnis 1. Einleitung 1.1 Babel-Transc...

Perfekte Lösung für asynchrone Timeout-Vorgänge im JavaScript-Frontend

Inhaltsverzeichnis Was passiert, wenn die Ausführ...

Überblick und Einführung in das Linux-Betriebssystem

Inhaltsverzeichnis 1. Was ist ein Betriebssystem?...

Detaillierte Erklärung der Verwendung von Reduce Fold Unfold in JS

Inhaltsverzeichnis falten (reduzieren) Verwenden ...

Mehrere Methoden zum Löschen von Floating (empfohlen)

1. Fügen Sie ein leeres Element desselben Typs hi...

So greifen Sie in Docker auf den lokalen Computer (Hostcomputer) zu

Frage Wie greife ich in Docker auf die lokale Dat...

Detaillierte Erklärung, wie eine SQL-Anweisung in MySQL ausgeführt wird

Überblick Ich habe vor Kurzem begonnen, mir Wisse...