0Pricing
React Academy · Leçon

Hydratation progressive avec hydratation sélective

Utilisez l’hydratation sélective de React 18 pour donner la priorité aux composants avec lesquels l’utilisateur interagit en premier.

Hydratation progressive avec hydratation sélective est une leçon React Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage React Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours React Academy comprend 4 leçons au total.

Qu'est-ce que l'hydratation sélective ?

L'hydratation sélective est une fonctionnalité de React 18 qui permet à React de commencer à hydrater les composants dès que leur code JavaScript arrive, sans attendre le téléchargement du code JavaScript de toute la page. Chaque section dont le code est séparé indépendamment s'hydrate au chargement de son module, plutôt que toutes les sections en même temps.

React 18 : pas d'hydratation en bloc

Avant React 18, l'hydratation se faisait « tout ou rien » — React devait télécharger tout le code JavaScript et hydrater l'arbre entier avant qu'une partie quelconque de la page devienne interactive. React 18 lève cette contrainte : les portions de l'arbre s'hydratent indépendamment à mesure que leur code et leurs données deviennent disponibles.

L'interaction utilisateur donne la priorité à l'hydratation

Si l'utilisateur clique sur une limite Suspense qui n'est pas encore hydratée ou interagit avec elle, React donne immédiatement la priorité à l'hydratation de ce sous-arbre avant tout autre travail d'hydratation en attente. L'élément que l'utilisateur essaie d'utiliser devient ainsi interactif en premier, même s'il n'apparaît pas dans l'ordre du document.

React.lazy et Suspense pour le fractionnement du code

La combinaison de React.lazy, des imports dynamiques et des limites Suspense permet l'hydratation sélective des composants dont le code est fractionné. Le navigateur télécharge d'abord le module JS principal et hydrate immédiatement la structure initiale. Chaque composant chargé à la demande s'hydrate lorsque son fragment est téléchargé — progressivement, au fur et à mesure que le navigateur les récupère.

L'impact sur l'expérience utilisateur

Le résultat est que le contenu au-dessus de la ligne de flottaison devient interactif avant même que le code JavaScript situé sous la ligne de flottaison ne soit téléchargé. L'utilisateur peut interagir avec la navigation et la section principale contenant le CTA pendant que le flux de commentaires et le module de recommandations chargent encore leurs fragments JavaScript.

Mesurer l'impact

L'hydratation sélective réduit le temps total de blocage (TBT), la mesure clé des performances d'hydratation. Dans l'onglet Performances de Chrome DevTools, les tâches longues (tâches de plus de 50 ms) sont surlignées en rouge. Avant l'hydratation sélective, vous pouvez voir une seule tâche longue de 300 ms pour l'hydratation complète ; ensuite, vous voyez plusieurs petites tâches réparties dans le temps.

Éviter les imports de premier niveau trop précoces

L'anti-modèle qui compromet l'hydratation sélective consiste à importer tous les composants au début de votre application : import Footer from './Footer'. Le navigateur doit alors télécharger, analyser et exécuter le code de Footer avant même le début de l'hydratation. Remplacez les imports de premier niveau des composants situés sous la ligne de flottaison par React.lazy et des imports dynamiques.

Imports dynamiques pour le contenu sous la ligne de flottaison

Utilisez const Footer = React.lazy(() => import('./Footer')) pour les composants qui apparaissent sous la ligne de flottaison initiale. Enveloppez-les dans Suspense avec une solution de repli simple. Le navigateur réduit la priorité de récupération du module de Footer jusqu'à la fin de l'hydratation du contenu au-dessus de la ligne de flottaison, ce qui améliore naturellement le TBT.

Interaction entre diffusion en flux et hydratation sélective

La diffusion en flux et l'hydratation sélective sont complémentaires : la diffusion en flux envoie des fragments HTML pour améliorer FCP et LCP, tandis que l'hydratation sélective traite les fragments JavaScript pour améliorer TTI et TBT. Ensemble, elles répondent aux deux dimensions des performances : « afficher rapidement le contenu » et « le rendre rapidement interactif ».

Hydratation sélective et composants serveur React

Les composants serveur React vont plus loin dans l'hydratation sélective : les composants serveur ne produisent aucun code JavaScript pour le client. Seuls les composants client, marqués par « use client », doivent être hydratés. Cela réduit la quantité totale de code JavaScript à hydrater et rend l'hydratation sélective encore plus efficace.

Architecture pratique de l'hydratation sélective

Un schéma pratique consiste à utiliser renderToPipeableStream pour diffuser le HTML, à envelopper la page dans un appel racine à hydrateRoot (au lieu de createRoot) pour activer le mode hydratation, à utiliser React.lazy pour toutes les sections situées sous la ligne de flottaison et à envelopper chaque section dans une limite Suspense. React s'occupe automatiquement du reste.

Interaction utilisateur et hydratation sélective

Comment l'interaction utilisateur influe-t-elle sur la priorité de l'hydratation sélective dans React 18 ?

Récapitulatif de la leçon

L'hydratation sélective permet à React d'hydrater progressivement les sous-arbres de composants à mesure que leur code JavaScript arrive, plutôt que d'attendre le module complet. Les interactions utilisateur donnent la priorité à l'hydratation du sous-arbre ciblé. React.lazy et les imports dynamiques pour le contenu situé sous la ligne de flottaison, associés aux limites Suspense, permettent ce fonctionnement progressif. L'hydratation sélective et le SSR en flux sont des techniques complémentaires qui améliorent ensemble la diffusion du contenu et les performances d'interactivité.

Questions Fréquemment Posées

La leçon « Hydratation progressive avec hydratation sélective » est-elle gratuite ?

Oui — le texte complet de « Hydratation progressive avec hydratation sélective » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours React Academy, passe à CoddyKit PRO. Le cours React Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Hydratation progressive avec hydratation sélective » ?

Utilisez l’hydratation sélective de React 18 pour donner la priorité aux composants avec lesquels l’utilisateur interagit en premier. Tu pratiques React Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer React Academy ?

Aucune expérience préalable n'est requise. React Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Hydratation progressive avec hydratation sélective » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon React Academy ?

Oui. Chaque leçon React Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Streaming dans React 18 : fonctionnement de renderToPipeableStream
  2. Limites Suspense et priorité du streaming
  3. Hydratation progressive avec hydratation sélective
  4. Mesurer l’impact du streaming : FCP, TTI et LCP
← Retour à React Academy