Importieren und Exportieren von Komponenten
Die Magie von Komponenten liegt in ihrer Wiederverwendbarkeit: Sie können Komponenten erstellen, die aus anderen Komponenten bestehen. Wenn Sie jedoch immer mehr Komponenten verschachteln, ist es oft sinnvoll, sie in verschiedene Dateien aufzuteilen. So bleiben Ihre Dateien übersichtlich und Sie können Komponenten an mehr Stellen wiederverwenden.
Sie werden lernen
- Was eine Root-Komponentendatei ist
- Wie man eine Komponente importiert und exportiert
- Wann man Standard- und benannte Imports/Exports verwendet
- Wie man mehrere Komponenten aus einer Datei importiert und exportiert
- Wie man Komponenten in mehrere Dateien aufteilt
Die Root-Komponentendatei
InIhre erste Komponentehaben Sie eineProfile-Komponente und eineGallery-Komponente erstellt, die sie rendert:
Diese befinden sich derzeit in einerRoot-Komponentendatei,in diesem Beispiel namensApp.js. Je nach Setup könnte sich Ihre Root-Komponente jedoch in einer anderen Datei befinden. Wenn Sie ein Framework mit dateibasiertem Routing wie Next.js verwenden, ist Ihre Root-Komponente für jede Seite unterschiedlich.
Exportieren und Importieren einer Komponente
Was, wenn Sie in Zukunft die Startseite ändern und dort eine Liste von Wissenschaftsbüchern anzeigen möchten? Oder alle Profile an eine andere Stelle verschieben? Es ist sinnvoll,GalleryundProfileaus der Root-Komponentendatei herauszunehmen. Dadurch werden sie modularer und in anderen Dateien wiederverwendbar. Sie können eine Komponente in drei Schritten verschieben:
- ErstellenSie eine neue JS-Datei, um die Komponenten darin abzulegen.
- ExportierenSie Ihre Funktionskomponente aus dieser Datei (entweder mitStandard-oderbenanntenExports).
- ImportierenSie sie in der Datei, in der Sie die Komponente verwenden möchten (mit der entsprechenden Technik zum Importieren vonStandard-oderbenanntenExports).
Hier wurden sowohlProfileals auchGallery aus App.jsin eine neue Datei namensGallery.jsverschoben. Jetzt können SieApp.jsändern, umGalleryausGallery.jszu importieren:
Beachten Sie, wie dieses Beispiel nun in zwei Komponentendateien aufgeteilt ist:
Gallery.js:- Definiert die
Profile-Komponente, die nur innerhalb derselben Datei verwendet und nicht exportiert wird. - Exportiert die
Gallery-Komponente alsStandardexport.
- Definiert die
App.js:- Importiert
GalleryalsStandardimportausGallery.js. - Exportiert die Root-
App-Komponente alsStandardexport.
- Importiert
Hinweis
Möglicherweise stoßen Sie auf Dateien, die die.js-Dateiendung weglassen, wie hier:
Sowohl'./Gallery.js'als auch'./Gallery'funktionieren mit React, wobei Ersteres näher an der Funktionsweise vonnativen ES-Modulenliegt.
Exportieren und Importieren mehrerer Komponenten aus derselben Datei
Was ist, wenn Sie nur einProfileanstelle einer Galerie anzeigen möchten? Sie können auch dieProfile-Komponente exportieren. AberGallery.jshat bereits einenStandardexport, und Sie können nichtzweiStandardexporte haben. Sie könnten eine neue Datei mit einem Standardexport erstellen oder einenbenanntenExport fürProfilehinzufügen.Eine Datei kann nur einen Standardexport haben, aber sie kann zahlreiche benannte Exporte haben!
Hinweis
Um die potenzielle Verwirrung zwischen Standard- und benannten Exporten zu reduzieren, entscheiden sich einige Teams dafür, nur bei einem Stil (Standard oder benannt) zu bleiben oder sie nicht in einer einzelnen Datei zu mischen. Tun Sie, was für Sie am besten funktioniert!
ZuerstexportierenSieProfileausGallery.jsmit einem benannten Export (ohne das Schlüsselwortdefault):
Importiere dannmittels eines benannten Imports (mit geschweiften Klammern)ProfileausGallery.jsinApp.js:
Rendere schließlich<Profile />aus derApp-Komponente:
Nun enthältGallery.jszwei Exporte: einen StandardexportGalleryund einen benannten ExportProfile. App.jsimportiert beide. Versuche in diesem Beispiel,<Profile />in<Gallery />zu ändern und zurück:
Jetzt verwendest du eine Mischung aus Standard- und benannten Exporten:
Gallery.js:- Exportiert die
Profile-Komponente als einenbenannten Export namensProfile. - Exportiert die
Gallery-Komponente als einenStandardexport.
- Exportiert die
App.js:- Importiert
Profileals einenbenannten Import namensProfileausGallery.js. - Importiert
Galleryals einenStandardimportausGallery.js. - Exportiert die Root-
App-Komponente als einenStandardexport.
- Importiert
Zusammenfassung
Auf dieser Seite hast du gelernt:
- Was eine Root-Komponentendatei ist
- Wie man eine Komponente importiert und exportiert
- Wann und wie man Standard- und benannte Imports und Exports verwendet
- Wie man mehrere Komponenten aus derselben Datei exportiert
Probieren Sie einige Herausforderungen aus
Challenge 1 of 1:Komponenten weiter aufteilen #
Derzeit exportiert Gallery.js sowohl Profile als auch Gallery, was etwas verwirrend ist.
Verschieben Sie die Profile-Komponente in ihre eigene Datei Profile.js und ändern Sie dann die App-Komponente so, dass sie sowohl <Profile /> als auch <Gallery /> nacheinander rendert.
Sie können entweder einen Standard- oder einen benannten Export für Profile verwenden, aber stellen Sie sicher, dass Sie die entsprechende Import-Syntax sowohl in App.js als auch in Gallery.js verwenden! Sie können sich auf die Tabelle aus dem obigen Deep Dive beziehen:
Nachdem Sie es mit einer Art von Exporten zum Laufen gebracht haben, lassen Sie es auch mit der anderen Art funktionieren.
