Vorwort Beim stapelweisen Hinzufügen von Elementen zum DOM-Baum empfiehlt es sich, ein document.createDocumentFragment zu erstellen, um die Elemente zuerst stapelweise zum DOM-Baum hinzuzufügen. Ähnlich wie DocumentFragment verfügt auch React über das Konzept von Fragment, das ähnliche Verwendungszwecke hat. Vor React 16 wurde Fragment über das Erweiterungspaket react-addons-create-fragment erstellt, während in React 16 „Fragment“ direkt über <React.Fragment></React.Fragment> erstellt wird. Motivation für FragmenteEin gängiges Muster besteht darin, dass eine Komponente eine Liste untergeordneter Elemente zurückgibt. Nehmen Sie diesen React-Codeausschnitt als Beispiel: Klasse Table erweitert React.Component { rendern() { zurückkehren ( <Tabelle> <tr> <Spalten /> </tr> </Tabelle> ); } } <Columns /> muss mehrere Elemente zurückgeben, damit das gerenderte HTML gültig ist. Wenn das übergeordnete Div im Render() von <Columns /> verwendet wird, ist das generierte HTML ungültig. Klasse Columns erweitert React.Component { rendern() { zurückkehren ( <div> <td>Hallo</td> <td>Welt</td> </div> ); } } Erhalten Sie eine < Table />-Ausgabe: <Tabelle> <tr> <div> <td>Hallo</td> <td>Welt</td> </div> </tr> </Tabelle> Um dieses Problem zu lösen, entstanden Fragmente. Einführung und Verwendung von React-FragmentenDie Komponente React.Fragment ermöglicht die Rückgabe mehrerer Elemente von der Methode render(), ohne dass zusätzliche DOM-Elemente erstellt werden müssen. Ein gängiges Muster besteht darin, dass eine Komponente mehrere Elemente zurückgibt. Mit Fragmenten können Sie Unterlisten gruppieren, ohne dem DOM zusätzliche Knoten hinzuzufügen. Zum Verständnis: Wenn wir eine Komponente definieren, möchte das äußerste, in die Rückgabe eingeschlossene Div häufig nicht auf der Seite gerendert werden. Daher müssen wir unsere Fragmentkomponente verwenden. Genau wie Vues <template ></ template >. rendern() { zurückkehren ( <Reagieren.Fragment> Etwas Text. <h2>Eine Überschrift</h2> </React.Fragment> ); } Sie können auch die Kurzsyntax <></> verwenden. rendern() { zurückkehren ( <> Etwas Text. <h2>Eine Überschrift</h2> </> ); } Darüber hinaus unterstützt Render ab React 16 die Rückgabe von Arrays, und viele Leute kennen diese Funktion. Mit dieser Funktion lässt sich bereits eine unnötige Knotenverschachtelung reduzieren. importiere React von „react“; Standardfunktion exportieren () { zurückkehren [ <div>1</div>, <div>2</div>, <div>3</div> ]; } Unterschied zwischen <React.Fragment> und <>Die Syntax <></> kann keine Schlüssel oder Attribute akzeptieren, während <React.Fragment> dies kann. Mit der expliziten <React.Fragment>-Syntax deklarierte Fragmente können Schlüssel haben. Ein Anwendungsfall ist das Zuordnen einer Sammlung zu einem Array von Fragmenten, beispielsweise das Erstellen einer Liste mit Beschreibungen: Funktionsglossar (Eigenschaften) { zurückkehren ( <dl> {props.items.map(item => ( // Ohne „key“ gibt React eine Schlüsselwarnung aus <React.Fragment key={item.id}> <dt>{item.term}</dt> <dd>{Artikelbeschreibung}</dd> </React.Fragment> ))} </dl> ); } Der Schlüssel ist das einzige Attribut, das an ein Fragment übergeben werden kann. Die Unterstützung für andere Eigenschaften, z. B. Ereignisse, wird möglicherweise in der Zukunft hinzugefügt. Hinweis: Die Kurzform <></> wird derzeit von einigen Front-End-Tools nicht gut unterstützt und mit create-react-app erstellte Projekte werden möglicherweise nicht kompiliert. Es ist also normal, auf diese Situation zu stoßen. Dies ist das Ende dieses Artikels über die Einführung und detaillierte Verwendung von React Fragment. Weitere relevante Inhalte zu React Fragment finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Einführung in die HTML-Methode zum Öffnen von Linkdateien mithilfe von Hyperlinks
>>: Jenkins+Gitlab+Nginx Bereitstellung einer Front-End-Anwendung
MySQL-Konsistenzprotokoll Was passiert mit nicht ...
Das Erstellen eines React-Projekts kann sehr einf...
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis 1. Einleitung 2. Was ist funkt...
Inhaltsverzeichnis 1. Grundlegende Umgebungskonfi...
Ziehen Sie die Maus, um einen Screenshot der Seit...
Machen Sie einen leeren Bereich für Taobao: Wenn ...
Inhaltsverzeichnis Vorwort denken Analysieren und...
Wir haben bereits darüber gesprochen, wie man ein...
Mysql ist eine gängige relationale Open-Source-Da...
Um es gleich auf den Punkt zu bringen: Bei manche...
Dieser Artikel veranschaulicht anhand eines Beisp...
In diesem Artikel wird der spezifische JavaScript...
Der <base>-Tag gibt die Standardadresse ode...
„Eingaben sollten in logische Gruppen unterteilt ...