Retour à tous les articles

Optimiser les performances React

Optimiser les performances React

Quand une application React grossit, l'optimisation des performances devient rapidement importante. L'objectif n'est pas de tout optimiser à l'avance, mais de corriger les vrais goulots d'étranglement au bon moment.

1. Découpage du code

Le code splitting permet de charger certaines parties de l'application à la demande.

const OtherComponent = React.lazy(() => import('./OtherComponent'));

function MyComponent() {
  return (
    <React.Suspense fallback={<div>Loading...</div>}>
      <OtherComponent />
    </React.Suspense>
  );
}

2. Mémoïsation

React.memo peut éviter des re-rendus inutiles sur des composants fonctionnels quand leurs props ne changent pas.

3. useMemo et useCallback

Ces hooks sont utiles pour mémoriser des calculs coûteux ou stabiliser certaines fonctions.

const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]);
const memoizedCallback = useCallback(() => doSomething(a, b), [a, b]);

4. Virtualisation

Pour les longues listes, des bibliothèques comme react-window permettent de n'afficher que les éléments visibles à l'écran.

5. Limiter les fonctions recréées inutilement

Les fonctions définies dans le rendu peuvent provoquer des recalculs ou des re-rendus. Il faut les surveiller dans les zones sensibles.

6. Utiliser le build de production

Une application React doit toujours être mesurée en build de production, car le mode développement ajoute des vérifications coûteuses.

7. Profiler l'application

Le React DevTools Profiler aide à repérer les composants trop souvent rendus ou trop lents.

8. Debounce et throttle

Sur des événements fréquents comme le scroll, le resize ou la recherche, limiter la fréquence d'exécution améliore souvent nettement la fluidité.

9. Réduire les re-rendus inutiles

Il est important d'identifier précisément ce qui provoque un rendu, puis de simplifier les dépendances ou la structure des composants.

10. Optimiser les images et assets

Les performances perçues dépendent aussi du poids des images, des polices et des ressources externes.

En résumé, il faut mesurer d'abord, optimiser ensuite, et concentrer les efforts sur les zones qui ont un vrai impact utilisateur.

Publié le :15 août 2021