- Published on
Le Windowing en React : Optimiser les performances de sont application
- Authors
- Name
- NGANDA Steve
- @OnanaRyan
Bienvenue dans la guilde ! 👋
Le windowing, ou virtualisation de liste, consiste à n’afficher que les éléments visibles à l’écran, au lieu de rendre toute la liste dans le DOM.
Concrètement, même si votre liste contient 10 000 éléments, le DOM n’en affichera qu’une vingtaine, correspondant à la fenêtre visible de l’utilisateur.
Cela permet d’optimiser :
- les performances de rendu,
- la consommation mémoire

Deux bibliothèques se démarquent :
- react-window : Léger, rapide, simple à prendre en main
- react-virtualized : Plus complet (grilles, tables), mais plus lourd
Dans cet article, on choisit react-window pour sa simplicité, idéale pour la majorité des cas d’usage courants.
Cas pratique
Imaginez que vous développez une application SaaS pour une entreprise. On vous demande d’implémenter un module de messagerie interne, les messages doivent s'afficher dans une zone scrollable. Certains canaux contiennent des milliers de messages.
Une pagination serait contre-productive ici.
On attend un scroll fluide, naturel, comme sur WhatsApp ou Slack.
l’approche naïve : map
L'approche la plus naïve serait d'afficher tous nos message avec notre bon vieux map
En prenant cette approche, nous allons faire face à 03 problème mageurs :
- Temps de chargement élevé
- DOM saturé
- Scroll peu fluide
Voici une analyse des performance de notre application réalisée avec l'extension lighthouse (google chrome) au chargement de la page :

l’approche optimisée avec react-window
Nous devons tout d'abord installler la librerie react-window:
Maintenant, nous pourvons passer à l'implémentation :
Grace à cette approche, nous avons plusieur avantages :
- DOM allégé (seulement ~10 éléments affichés)
- Scroll fluide
- Expérience utilisateur optimale
Voice de résultat de l'analyse des performances de notre site réalisée avec l'extension lighthouse (google chrome) au chargement de la page :

Quand utiliser le windowing ?
Utilisez le windowing si :
- Vous affichez des millier d’éléments ou plus
- Le scroll est préféré à la pagination
- Vous cherchez à optimiser le temps de rendu
Cas typiques :
- Fils de discussion (chat, forums)
- Journaux d’événements (logs)
- Catalogues de produits
- Interfaces d’admin volumineuses
Le windowing est une technique indispensable dès que vous affichez des listes longues dans React. Elle permet de maintenir l’application réactive, rapide et agréable à utiliser.
N'hésitez pas à revenir dans la guilde pour en apprendre plus 😉 !