
Création et utilisation de portails (`ReactDOM.createPortal`)
Guide pratique pour implémenter des Portails en React : utilisation de ReactDOM.createPortal, préparation du noeud DOM cible et exemples concrets.
L'API `ReactDOM.createPortal` : La porte de sortie
La clé pour créer des portails en React réside dans l'utilisation de la fonction createPortal fournie par la bibliothèque react-dom. C'est cette fonction qui permet de dire à React : "Prends ces éléments enfants que je veux rendre, et au lieu de les ajouter ici dans le DOM, attache-les à cet autre endroit spécifié".
La signature de l'API est simple :
ReactDOM.createPortal(child, containerNode)child: Le contenu React que vous souhaitez rendre via le portail. Cela peut être n'importe quel élément React valide : JSX, un composant, une chaîne, un nombre, un fragment, etc.containerNode: Une référence directe à un noeud DOM existant dans la page. C'est l'endroit où lechildsera physiquement ajouté dans l'arbre DOM.
Le point crucial est que le containerNode doit déjà exister dans le DOM lorsque le composant qui appelle createPortal est monté et rendu. Il ne peut pas être créé dynamiquement par React au même moment.
Préparer le conteneur DOM cible
Puisque le noeud DOM conteneur doit exister, la pratique la plus courante est de le préparer à l'avance dans votre fichier HTML principal (souvent public/index.html dans les projets Create React App ou Vite).
Vous pouvez simplement ajouter un élément