Vue ist derzeit eines der beliebtesten Frontend-Frameworks. Es ist einfach zu bedienen und sehr flexibel. In Vue sind rekursive Komponenten eine sehr nützliche Technologie, die uns dabei helfen kann, Komponenten innerhalb von Komponenten zu verwenden und den Aufwand der Datenübermittlung zwischen Komponenten zu vermeiden.
Schauen wir uns nun genauer an, wie man rekursive Komponenten in Vue verwendet.
Zunächst müssen wir verstehen, was rekursive Komponenten sind. Rekursive Komponenten sind eine Technik, die es Ihnen ermöglicht, sich innerhalb einer Komponente wiederholt wiederzuverwenden. Beispielsweise kann es in einer Komponente eine solche Anforderung geben: Wir müssen einen Satz baumstrukturierter Daten präsentieren, und jeder Knoten und seine untergeordneten Knoten sind dieselbe Komponente. Zu diesem Zeitpunkt können wir rekursive Komponenten verwenden, um dies zu erreichen.
In Vue gibt es zwei Möglichkeiten, rekursive Komponenten zu verwenden. Im Folgenden stellen wir sie einzeln vor.
2.1. Verwenden Sie Ihre eigene Komponente direkt
Wir können uns selbst direkt in der Vorlage der Komponente verwenden und die aktuellen Daten über Requisiten übergeben, damit die Komponente selbst eine Rekursion durchführen kann.
Das Folgende ist ein Beispiel für die Verwendung einer rekursiven Komponente zur Darstellung einer Baumstruktur:
<template> <div> <div v-for="item in list" :key="item.id"> <TreeNode :node="item" :children="item.children" /> </div> </div> </template> <script> export default { name: 'Tree', props: { list: Array, }, components: { TreeNode: { name: 'TreeNode', props: { node: Object, children: Array, }, template: ` <div> <div>{{node.title}}</div> <Tree v-if="children" :list="children" /> </div> `, }, }, }; </script>
Im obigen Beispiel haben wir eine Baumkomponente zur Darstellung von Baumstrukturdaten erstellt, und die TreeNode-Komponente ist eine rekursive Komponente, die sich selbst erstellt, wenn erforderlicher Anruf.
2.2. Verwenden Sie das Namensattribut
Zusätzlich zur direkten Verwendung unserer eigenen Komponenten können wir das Namensattribut auch verwenden, um Endlosschleifenaufrufe von Komponenten zu vermeiden. Auf diese Weise können wir dafür sorgen, dass Vue für jede Komponente eine Instanz zwischenspeichert, wodurch unnötige Rendering-Kosten vermieden werden.
Wir können ein benutzerdefiniertes Tag in die Vorlage der Komponente schreiben und dann den Namen des Tags im Namensattribut der Komponente angeben. Dazu müssen wir die Komponente in zwei Teile unterteilen: Der eine ist die durch das Namensattribut gekennzeichnete Stammkomponente und der andere ist die rekursiv dargestellte untergeordnete Komponente. Wenn wir uns in der untergeordneten Komponente selbst rekursiv verwenden müssen, können wir direkt den Namen der Stammkomponente verwenden.
Das Folgende ist ein Beispiel für die Verwendung rekursiver Komponenten zur Darstellung einer Baumstruktur. Ähnlich wie im obigen Beispiel verwenden wir das Namensattribut, um Endlosschleifenaufrufe zu vermeiden.
<template> <div> <div v-for="item in list" :key="item.id"> <tree-node :node="item" /> </div> </div> </template> <script> export default { name: 'Tree', props: { list: Array, }, components: { TreeNode: { name: 'tree-node', props: { node: Object, }, template: ` <div> <div>{{node.title}}</div> <tree v-if="node.children" :list="node.children" /> </div> `, }, }, }; </script>
Im obigen Beispiel haben wir eine Tree-Komponente erstellt, um baumstrukturierte Daten darzustellen, und die TreeNode-Komponente verwendet das Namensattribut, um Endlosschleifenaufrufe der Komponente zu vermeiden.
Oben haben wir die Verwendung rekursiver Komponenten in Vue vorgestellt. Rekursive Komponenten sind eine sehr flexible Technologie, die es uns ermöglicht, Daten freier zwischen Komponenten zu übertragen. Es ist zu beachten, dass Sie bei der Verwendung rekursiver Komponenten Endlosschleifenaufrufe vermeiden und versuchen müssen, das Namensattribut zu verwenden, um diese Situation zu vermeiden.
Das obige ist der detaillierte Inhalt vonWie verwende ich rekursive Komponenten in Vue?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!