
Rendu des composants
Comprenez le processus de rendu (rendering) dans React : comment vos composants sont transformés en éléments DOM affichés à l'écran via ReactDOM.
Du code à l'écran : Qu'est-ce que le rendu ?
Nous avons défini les composants React, qu'ils soient fonctionnels ou basés sur des classes, comme les plans ou les recettes pour construire notre interface utilisateur. Mais comment React transforme-t-il ces plans en éléments concrets visibles dans le navigateur de l'utilisateur ? Ce processus est appelé le rendu (rendering).
Le rendu est l'étape durant laquelle React prend un composant, exécute sa logique (le corps de la fonction pour un composant fonctionnel, ou la méthode `render()` pour un composant classe), obtient la description de l'UI sous forme de JSX, et travaille ensuite pour mettre à jour le DOM du navigateur afin qu'il corresponde à cette description. C'est le mécanisme central qui donne vie à vos composants.
Le point d'entrée : `ReactDOM.createRoot()`
Le processus de rendu commence à un point d'entrée unique dans votre application, généralement dans le fichier `src/index.js` (ou `src/main.jsx` pour Vite). C'est ici que vous indiquez à React où, dans votre page HTML, l'application doit être "montée" (attachée).
La méthode moderne pour cela est `ReactDOM.createRoot()`. Elle prend en argument un noeud DOM existant dans votre fichier `public/index.html` (typiquement, `
`). Cette méthode crée une racine React pour ce noeud. Ensuite, vous appelez la méthode `render()` sur cette racine, en lui passant le composant principal de votre application (souvent nommé `App`) enveloppé dans du JSX (`// Dans src/index.js (ou main.jsx)
import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css'; // Styles globaux
import App from './App'; // Importe le composant racine
// 1. Trouve l'élément DOM racine dans public/index.html
const rootElement = document.getElementById('root');
// 2. Crée une racine React pour cet élément
const root = ReactDOM.createRoot(rootElement);
// 3. Effectue le premier rendu du composant App dans la racine
root.render(
{ /* Mode strict pour des vérifications supplémentaires (optionnel) */}
);C'est cet appel initial à `root.render(
Rendu récursif : Des composants aux éléments DOM
Lorsque React rend un composant comme `
- Des balises HTML natives (ex: ``, `
`, `
`).
- D'autres composants React personnalisés (ex: `
`, ` `, ``). Si le JSX retourné contient d'autres composants React, React va alors récursivement rendre ces composants enfants. Il continue ce processus jusqu'à ce qu'il n'ait plus que des balises HTML natives. A ce moment-là, React sait comment traduire ces balises natives en véritables noeuds du DOM.
Par exemple, si `App` rend `
` et ` `, et que ` ` rend un ` ` et un `
- D'autres composants React personnalisés (ex: `