Retour

Meilleures pratiques React en 2025

Publié le 10 janvier 2025
par Kinga Team
M

React évolue vite, mais les applications qui vieillissent bien ont des points communs qui changent peu. Voici les pratiques que nous appliquons sur nos projets, et pourquoi.

1. Des composants petits, qui font une seule chose

Un composant de 400 lignes qui charge des données, gère un formulaire et affiche un tableau est difficile à lire, à tester et à réutiliser. Découpez-le : un composant pour l'affichage, un autre pour la logique. Si vous peinez à lui trouver un nom précis, c'est souvent qu'il fait trop de choses.

2. Garder l'état au plus près de son usage

Un état placé trop haut dans l'arbre provoque des rendus inutiles et oblige à faire descendre des props sur plusieurs niveaux. Commencez par un état local. Remontez-le seulement quand deux composants en ont réellement besoin, et ne sortez un gestionnaire d'état global que pour ce qui est vraiment global : utilisateur connecté, langue, thème.

3. Ne pas stocker ce qui peut se calculer

Si une valeur se déduit des props ou d'un autre état, calculez-la pendant le rendu au lieu de la copier dans un second état synchronisé par un useEffect. Deux états à maintenir d'accord sont une source classique de bugs.

4. Réserver useEffect au monde extérieur

Un effet sert à synchroniser un composant avec quelque chose d'extérieur à React : une API du navigateur, un abonnement, une bibliothèque tierce. Pour réagir à un clic, mettez le code dans le gestionnaire d'événement. Pour transformer des données, faites-le pendant le rendu.

5. Charger les données côté serveur quand c'est possible

Avec les Server Components et des frameworks comme Next.js, une bonne partie des données peut être chargée sur le serveur. La page arrive déjà remplie, le navigateur télécharge moins de JavaScript, et les moteurs de recherche lisent le contenu sans effort. Gardez les composants client pour ce qui est interactif.

6. TypeScript, partout

Typer les props d'un composant revient à écrire sa documentation, vérifiée par le compilateur. Les erreurs de nom ou de forme de données sont signalées dans l'éditeur, pas en production.

7. Mesurer avant d'optimiser

useMemo et useCallback ont un coût en lisibilité. Utilisez le profileur de React pour trouver ce qui est réellement lent avant d'en ajouter. Le plus souvent, le gain vient d'ailleurs : listes trop longues à virtualiser, images trop lourdes, code chargé trop tôt.

8. L'accessibilité dès le départ

Un vrai <button> plutôt qu'une <div> cliquable, un label pour chaque champ, un texte alternatif pour chaque image, une navigation possible au clavier. C'est bien moins coûteux à faire au fur et à mesure qu'à corriger après coup.

9. Tester ce que voit l'utilisateur

Un test qui clique sur un bouton et vérifie le texte affiché survit aux refontes internes. Un test qui inspecte l'état d'un composant casse à chaque modification. Privilégiez les premiers.

En résumé

Aucune de ces pratiques n'est spectaculaire. Appliquées ensemble, elles donnent un code qu'une nouvelle personne peut comprendre rapidement et modifier sans crainte : c'est ce qui fait la différence sur la durée d'un projet.

Partager cet article