Islands y directivas client:*
Este es uno de los puntos donde Astro se separa de muchos stacks: no asume que toda la página deba hidratarse.
Qué es una island
Una island es un componente interactivo dentro de una página mayoritariamente estática.
Ejemplos:
- un buscador
- un contador
- un tab switcher
- un filtro de productos
Todo lo demás puede seguir siendo HTML estático.
Directivas client:*
Las más habituales:
client:loadclient:idleclient:visibleclient:only
Cuándo usar cada una
client:load
Cuando algo debe estar listo enseguida.
client:idle
Cuando puede esperar un poco.
client:visible
Muy útil para widgets por debajo del primer scroll.
client:only
Cuando un componente solo tiene sentido en cliente.
Regla práctica
La pregunta correcta no es “¿puedo hidratarlo?”, sino “¿realmente necesito hidratarlo?”.
Cuanto menos JavaScript mandes, mejor.
Un error habitual
Llegar con mentalidad React total y convertir cada pieza de UI en componente hidratado aunque no tenga interactividad real.
Eso mata una parte importante de la ventaja de Astro.
Qué sí compensa hidratar
- formularios ricos
- modales complejos
- filtros de listado
- gráficos
- experiencias claramente interactivas
En la última lección cerramos con contenido tipado, MDX y el flujo normal para publicar un proyecto Astro.