beschreibenDieser 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-Implementierung1. 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
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:
|
<<: Tutorial zur Installation und Konfiguration des Linux-Prozessmanagement-Tools Supervisor
>>: Tutorial zur Bereitstellung und Installation von MySQL 8.0.18 unter Windows 7
Wenn die Tabelle Zehntausende Datensätze enthält,...
Hier konzentrieren wir uns nur auf die Installati...
Mit der CSS3-Eigenschaft „border-image“ können Si...
Die MERGE-Speicher-Engine behandelt eine Gruppe v...
Inhaltsverzeichnis 1. Fehlerphänomen 2. Fehlerana...
Was ist sie? „em“ bezieht sich auf die Schrifthöhe...
Ich habe vor Kurzem eine Falle bei der regulären ...
In diesem Artikel erfahren Sie, wie Sie mit Navic...
Nach dem Drücken der Eingabetaste auf der Webseite...
IDEA ist das am häufigsten verwendete Entwicklung...
Inhaltsverzeichnis 0. Was ist Webpack 1. Einsatz ...
1. Zusätzlich zum Standardport 8080 versuchen wir...
In diesem Artikelbeispiel wird der spezifische Co...
Kürzlich stellte mir ein Freund eine Frage: Beim ...
Ergebnisse erzielen Code html <div Klasse=&quo...