0Pricing
React Academy · Leçon

Architecture en îlots : hydratation sélective

Découvrez comment les îlots isolent les composants interactifs afin que seuls ceux-ci chargent du JavaScript, tandis que le reste demeure en HTML statique.

Architecture en îlots : hydratation sélective est une leçon React Academy gratuite sur CoddyKit. Ceci est la leçon 2 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.

Le concept des îlots

L'architecture en îlots, expression forgée par Jason Miller en 2020, considère une page web comme un HTML principalement statique contenant des « îlots » isolés d'interactivité. L'océan statique de HTML est envoyé tel quel au navigateur. Seuls les îlots interactifs téléchargent et exécutent du JavaScript, de sorte que le volume de JavaScript est proportionnel à l'interactivité réelle.

Fonctionnement des îlots

Chaque îlot est un composant hydraté indépendamment. Le serveur génère le HTML initial de l'îlot en même temps que le reste de la page. Lorsque le JavaScript de l'îlot est chargé, seul le sous-arbre de ce composant est hydraté. Le HTML qui entoure les îlots n'est jamais modifié par JavaScript : il est véritablement statique.

La différence de volume de JavaScript

Sur une page d'article de blog utilisant l'architecture en îlots, le volume de JavaScript peut être de 5 ko pour un seul îlot de bouton J'aime. La même page construite comme une SPA React peut envoyer plus de 200 ko de JavaScript pour hydrater la page entière. L'approche par îlots rend le volume de JavaScript proportionnel à l'interactivité, et non à la taille de la page.

Des îlots avec plusieurs cadres de développement

Astro, le principal cadre de développement de l'architecture en îlots, prend en charge les îlots construits avec différents cadres de développement sur une même page. Vous pouvez avoir un îlot React à côté d'un îlot Vue, lui-même à côté d'un îlot JavaScript natif. Chaque îlot est empaqueté séparément, de sorte que les utilisateurs ne téléchargent que le code du cadre utilisé par les îlots visibles.

client:load — Hydratation immédiate

La directive client:load hydrate l'îlot immédiatement au chargement de la page. Utilisez-la pour les îlots immédiatement visibles et interactifs, comme un menu de navigation ou une section d'accroche contenant un champ de recherche. Il s'agit de la stratégie d'hydratation la plus prioritaire.

client:idle — Hydratation différée

La directive client:idle attend que le fil principal du navigateur soit inactif, une fois le contenu critique chargé, avant d'hydrater l'îlot. Elle convient parfaitement aux composants situés sous la ligne de flottaison ou aux interactions secondaires qui ne sont pas nécessaires immédiatement, comme une barre de partage sur les réseaux sociaux.

client:visible — Hydratation différée au besoin

La directive client:visible utilise un observateur d'intersection pour hydrater l'îlot uniquement lorsqu'il entre dans la fenêtre d'affichage au cours du défilement. Elle convient parfaitement aux îlots situés loin dans la page, comme une section de commentaires ou un carrousel de produits associés, que la plupart des utilisateurs n'atteindront peut-être jamais. JavaScript n'est même pas chargé avant d'être nécessaire.

client:only — Ignorer le SSR

La directive client:only ignore entièrement le rendu côté serveur et génère l'îlot uniquement dans le navigateur. Elle est nécessaire pour les composants qui utilisent des API propres au navigateur (window, document) ou qui dépendent de l'état côté client au moment du montage. La contrepartie est l'absence de HTML généré par le serveur pour cet îlot.

Résoudre le problème de l'hydratation

L'architecture en îlots résout complètement le problème de l'hydratation en veillant à ce que JavaScript ne soit chargé et exécuté que pour les composants véritablement interactifs. Un article de blog doté d'un bouton J'aime n'hydrate que l'îlot de ce bouton : le texte de l'article de 1 200 mots, l'en-tête et le pied de page n'entraînent aucune exécution de JavaScript côté client.

Isolation de l'état entre les îlots

Chaque îlot possède son propre état isolé. Les îlots ne peuvent pas partager directement l'état React, car ils constituent des arbres React distincts. C'est intentionnel : si deux composants doivent partager un état, ils doivent être regroupés dans un seul îlot. La communication entre îlots utilise des paramètres d'URL, des événements DOM ou des bibliothèques d'état légères.

Résultats dans le monde réel

Les sites passés d'une SPA React à l'architecture en îlots, comme le site de documentation d'Astro, font état d'améliorations spectaculaires : le volume de JavaScript diminue de 70 à 90 %, le TTI s'améliore de 2 à 4 secondes sur mobile et les scores de performance Lighthouse passent de 60 à plus de 90. Les gains sont les plus marqués sur les pages riches en contenu.

Stratégies d’hydratation par îlots

Quelle directive d’hydratation d’Astro hydrate un composant uniquement lorsqu’il entre dans la zone visible de l’écran ?

Récapitulatif de la leçon

L’architecture en îlots conserve la majeure partie de la page sous forme de HTML statique et hydrate uniquement des composants interactifs isolés. Astro fournit plusieurs directives d’hydratation : client:load (immédiatement), client:idle (lorsque le navigateur est inactif), client:visible (lors du défilement) et client:only (rendu uniquement côté client). Chaque îlot est hydraté indépendamment, ce qui rend la quantité de JavaScript proportionnelle à l’interactivité plutôt qu’à la taille de la page.

Questions Fréquemment Posées

La leçon « Architecture en îlots : hydratation sélective » est-elle gratuite ?

Oui — le texte complet de « Architecture en îlots : 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 « Architecture en îlots : hydratation sélective » ?

Découvrez comment les îlots isolent les composants interactifs afin que seuls ceux-ci chargent du JavaScript, tandis que le reste demeure en HTML statique. 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 2 sur 4.

Combien de temps prend la leçon « Architecture en îlots : 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. Le problème de l’hydratation complète
  2. Architecture en îlots : hydratation sélective
  3. Configurer Astro et les îlots React
  4. Mesurer les performances : Lighthouse et Core Web Vitals
← Retour à React Academy