Importation et exportation de composants
La magie des composants réside dans leur réutilisabilité : vous pouvez créer des composants qui sont composés d'autres composants. Mais à mesure que vous imbriquez de plus en plus de composants, il est souvent judicieux de commencer à les séparer dans différents fichiers. Cela vous permet de garder vos fichiers faciles à parcourir et de réutiliser les composants à plus d'endroits.
Vous allez apprendre
- Ce qu'est un fichier de composant racine
- Comment importer et exporter un composant
- Quand utiliser les importations et exportations par défaut et nommées
- Comment importer et exporter plusieurs composants depuis un seul fichier
- Comment séparer les composants en plusieurs fichiers
Le fichier de composant racine
DansVotre premier composant, vous avez créé un composantProfileet un composantGalleryqui l'affiche :
Ils se trouvent actuellement dans unfichier de composant racine,nomméApp.jsdans cet exemple. Selon votre configuration, votre composant racine pourrait se trouver dans un autre fichier. Si vous utilisez un framework avec un routage basé sur les fichiers, comme Next.js, votre composant racine sera différent pour chaque page.
Exporter et importer un composant
Et si vous vouliez changer l'écran d'accueil à l'avenir pour y mettre une liste de livres scientifiques ? Ou placer tous les profils ailleurs ? Il est logique de déplacerGalleryetProfilehors du fichier de composant racine. Cela les rendra plus modulaires et réutilisables dans d'autres fichiers. Vous pouvez déplacer un composant en trois étapes :
- Créezun nouveau fichier JS pour y placer les composants.
- Exportezvotre composant fonction de ce fichier (en utilisant soit les exportationspar défautsoit les exportationsnommées).
- Importez-le dans le fichier où vous utiliserez le composant (en utilisant la technique correspondante pour importer les exportationspar défautounommées).
Ici,ProfileetGalleryont tous deux été déplacés hors deApp.jsvers un nouveau fichier appeléGallery.js. Maintenant, vous pouvez modifierApp.jspour importerGallerydepuisGallery.js:
Notez comment cet exemple est maintenant décomposé en deux fichiers de composants :
Gallery.js:- Définit le composant
Profilequi est uniquement utilisé dans le même fichier et n'est pas exporté. - Exporte le composant
Galleryen tant qu'export par défaut.
- Définit le composant
App.js:- Importe
Galleryen tant qu'import par défautdepuisGallery.js. - Exporte le composant racine
Appen tant qu'export par défaut.
- Importe
Note
Vous pourriez rencontrer des fichiers qui omettent l'extension de fichier.jscomme ceci :
Les deux syntaxes'./Gallery.js'ou'./Gallery'fonctionneront avec React, bien que la première soit plus proche du fonctionnement desmodules ES natifs.
Exporter et importer plusieurs composants depuis le même fichier
Et si vous voulez afficher un seulProfileau lieu d'une galerie ? Vous pouvez aussi exporter le composantProfile. Mais Gallery.jsa déjà un exportpar défaut, et vous ne pouvez pas avoirdeuxexports par défaut. Vous pourriez créer un nouveau fichier avec un export par défaut, ou vous pourriez ajouter un exportnommépourProfile.Un fichier ne peut avoir qu'un seul export par défaut, mais il peut avoir de nombreux exports nommés !
Note
Pour réduire la confusion potentielle entre les exports par défaut et nommés, certaines équipes choisissent de s'en tenir à un seul style (par défaut ou nommé), ou d'éviter de les mélanger dans un seul fichier. Faites ce qui fonctionne le mieux pour vous !
Premièrement,exportezProfiledepuisGallery.jsen utilisant un export nommé (sans le mot-clédefault) :
Ensuite,importezProfiledepuisGallery.jsversApp.jsen utilisant une importation nommée (avec les accolades) :
Enfin,rendez<Profile />depuis le composantApp :
Maintenant,Gallery.jscontient deux exportations : une exportation par défautGalleryet une exportation nomméeProfile. App.jsimporte les deux. Essayez de modifier<Profile />en<Gallery />et inversement dans cet exemple :
Vous utilisez maintenant un mélange d’exportations par défaut et nommées :
Gallery.js:- Exporte le composant
Profileen tant qu'export nommé appeléProfile. - Exporte le composant
Galleryen tant qu'export par défaut.
- Exporte le composant
App.js:- Importe
Profileen tant qu'import nommé appeléProfiledepuisGallery.js. - Importe
Galleryen tant qu'import par défautdepuisGallery.js. - Exporte le composant racine
Appen tant qu'export par défaut.
- Importe
Récapitulatif
Sur cette page, vous avez appris :
- Ce qu'est un fichier de composant racine
- Comment importer et exporter un composant
- Quand et comment utiliser les imports et exports par défaut et nommés
- Comment exporter plusieurs composants depuis le même fichier
Essayez quelques défis
Challenge 1 of 1:Divisez davantage les composants #
Actuellement, Gallery.js exporte à la fois Profile et Gallery, ce qui est un peu déroutant.
Déplacez le composant Profile dans son propre fichier Profile.js, puis modifiez le composant App pour qu'il rende <Profile /> et <Gallery /> l'un après l'autre.
Vous pouvez utiliser soit un export par défaut, soit un export nommé pour Profile, mais assurez-vous d'utiliser la syntaxe d'import correspondante dans App.js et Gallery.js ! Vous pouvez vous référer au tableau de la plongée approfondie ci-dessus :
Après avoir fait fonctionner avec un type d'export, faites-le fonctionner avec l'autre type.
