Principiante

Islands 🏝️

Por defecto, cuando creas tu proyecto de Astro, empiezas con CERO JavaScript. Las islas, lo que permiten es que puedas añadir interactividad a tu página sin la necesidad de que todos los componentes se rendericen en el servidor. Solo se renderizan los necesarios.

A esto se le llama Partial hydration (Hidratación parcial).

En el ejemplo de abajo, tenemos un archivo JSX de React y un archivo de Astro. Para que podamos usar JavaScript, debemos añadirle el atributo client:load.

React components/button.jsx


export default function Button () {
    function handleClick () {
        console.log("Hello world")
    }

    return (
        <button onclick={handleClick}>
            ¡Click!
        </button>
    )
}

Astro pages/index.astro

---
import Button from "/components/button.jsx"
---

<div>
    <Button client:load />
</div>