ReactJS - DOM : Guide pour les débutants

Salut à toi, futurs développeurs React ! Je suis excité de vous emmener dans un voyage à travers le monde fascinant de ReactJS et le Modèle d'Objet Document (DOM). En tant que quelqu'un qui enseigne l'informatique depuis des années, j'ai vu beaucoup d'étudiants avoir du mal avec ces concepts au début, mais croyez-moi, une fois que vous les avez compris, c'est comme faire du vélo - vous ne les oublierez jamais !

ReactJS - DOM

Qu'est-ce que le DOM ?

Avant de plonger dans la relation de React avec le DOM, penchons-nous sur les bases. Imaginez le DOM comme un arbre généalogique pour votre page web. Chaque élément sur votre page - qu'il s'agisse d'un bouton, d'un paragraphe ou d'une image - est comme un membre de cette famille. Tout comme vous pouvez changer la coiffure ou les vêtements d'un membre de la famille, vous pouvez manipuler ces éléments du DOM pour changer l'apparence et le comportement de votre page web.

ReactDOM : Le pont entre React et le navigateur

Maintenant, découvrons notre vedette : ReactDOM. Envisagez ReactDOM comme un assistant super-efficace pour React. Son travail principal est de prendre les composants React que vous créez et de les traduire en quelque chose que le navigateur peut comprendre et afficher.

Utilisation de ReactDOM

Commençons par un exemple simple :

import React from 'react';
import ReactDOM from 'react-dom';

const element = <h1>Bonjour, monde React !</h1>;
ReactDOM.render(element, document.getElementById('root'));

Dans cet extrait de code, nous disons à ReactDOM de prendre notre element (un simple titre h1) et de le rendre à l'intérieur de l'élément du DOM avec l'ID 'root'. C'est comme dire à votre assistant : "Hé, peux-tu mettre cette photo (notre élément React) dans ce cadre (l'élément 'root') sur le mur ?"

ReactDOMServer : Servir React côté serveur

Passons maintenant à ReactDOMServer. C'est comme le jumeau de ReactDOM qui travaille dans l'ombre. Alors que ReactDOM gère les choses dans le navigateur, ReactDOMServer nous aide à rendre les composants React sur le serveur.

Voici un exemple simple :

import ReactDOMServer from 'react-dom/server';
import App from './App';

const html = ReactDOMServer.renderToString(<App />);

Ce code prend notre composant App entier et le transforme en une chaîne de caractères HTML. C'est comme prendre un polaroid de votre application React - c'est un instantané qui peut être rapidement envoyé au navigateur.

ReactDOMClient : Le nouveau venu dans le quartier

Avec React 18, nous avons été présentés à ReactDOMClient. C'est comme le jeune frère plus énergique de ReactDOM, qui est tout au sujet des performances et des nouvelles fonctionnalités.

Voici comment vous pourriez l'utiliser :

import React from 'react';
import { createRoot } from 'react-dom/client';

const root = createRoot(document.getElementById('root'));
root.render(<App />);

Au lieu de rendre directement notre application, nous créons d'abord un 'root'. Ce 'root' est comme un pot spécial où nous pouvons planter notre application React et la voir pousser avec toutes les nouvelles fonctionnalités que React 18 offre.

Application de ReactDOMClient

Plongons un peu plus profondément dans la façon dont nous pouvons utiliser ReactDOMClient dans un scénario réel :

import React from 'react';
import { createRoot } from 'react-dom/client';

function Counter() {
const [count, setCount] = React.useState(0);
return (
<div>
<p>Vous avez cliqué {count} fois</p>
<button onClick={() => setCount(count + 1)}>
Cliquez-moi
</button>
</div>
);
}

const root = createRoot(document.getElementById('root'));
root.render(<Counter />);

Dans cet exemple, nous créons une application de compteur simple. La fonction createRoot configure notre environnement React 18, nous permettant d'utiliser toutes les nouvelles fonctionnalités comme le regroupement automatique pour une meilleure performance.

Comparaison des méthodes ReactDOM

Pour vous aider à comprendre les différentes méthodes que nous avons discutées, voici un tableau pratique :

Méthode Utilisé Dans But
ReactDOM.render() Navigateur Rend les éléments React dans le DOM
ReactDOMServer.renderToString() Serveur Rend les composants React en chaînes HTML
ReactDOMClient.createRoot() Navigateur Crée un root pour les fonctionnalités React 18
root.render() Navigateur Rend les composants dans le root créé

Conclusion

Et voilà, les amis ! Nous avons fait le tour du paysage du DOM React, du classique ReactDOM au ReactDOMServer côté serveur, et enfin au jeune ReactDOMClient. Souvenez-vous, comme pour apprendre toute nouvelle langue (que ce soit la programmation ou autre chose), la pratique fait toujours parfait. N'ayez pas peur d'expérimenter avec ces concepts dans vos propres projets.

Comme je le dis toujours à mes étudiants, coder c'est comme cuisiner - vous pourriez faire un peu de pagaille au début, mais avec le temps et la pratique, vous serez bientôt à créer des applications React délicieuses en un rien de temps ! Alors, allons-y, salez les mains avec du code, et bon codage !

Credits: Image by storyset