Astro.2 mai 2026

Choisir entre statique et interactif dans Astro

Les îlots ne sont pas gratuits. Quelques critères concrets pour décider quand un composant mérite vraiment du JavaScript côté client.

Astro rend le JavaScript optionnel. C’est libérateur, mais cela déplace la question : à partir de quand un composant justifie-t-il d’être hydraté ?

Trois questions avant d’hydrater

  1. L’état survit-il à un rechargement ? Si oui, il appartient probablement à l’URL ou au serveur, pas à un composant client.
  2. L’interaction est-elle nécessaire au premier écran ? Un menu déroulant dans le pied de page peut attendre client:visible.
  3. Le CSS seul suffirait-il ? Les accordéons, les onglets et les carrousels simples se font très bien sans JavaScript.

Le coût réel

Un îlot n’embarque pas seulement votre composant : il embarque son framework. Sur une page qui n’en aurait autrement eu aucun, le premier îlot est de loin le plus cher. Les suivants sont presque gratuits.

D’où une règle simple : si une page n’a besoin que d’un seul comportement interactif, écrivez-le en JavaScript natif. Dès qu’il y en a trois ou quatre, sortez le framework.

En pratique

Ce site n’utilise aucun framework client. Le menu, le carrousel et les révélations au scroll tiennent en une soixantaine de lignes réparties dans les composants concernés. Le jour où une vraie interface d’application apparaîtra, un îlot Vue sera ajouté à cet endroit précis — et nulle part ailleurs.