Curso de Astro
Vamos a construir una página real, paso a paso, para que entiendas cómo funciona Astro desde dentro.
🧱 1. Estructura básica de un archivo .astro
Cada archivo .astro tiene dos partes:
1--- 2/* Parte superior (JavaScript o imports) */ 3--- 4 5<!-- Parte inferior (HTML, CSS, componentes, etc.) -->
🔹 Todo lo que esté entre las líneas --- es JavaScript del servidor (no se envía al navegador).
🔹 Todo lo demás es HTML y componentes que se renderizan en la página.
✨ 2. Ejemplo simple: “Hola mundo”
Crea el archivo:
src/pages/index.astro
Y escribe:
1--- 2const nombre = "Astro 🚀"; 3--- 4 5<html lang="es"> 6 <head> 7 <meta charset="UTF-8" /> 8 <title>Mi primera página Astro</title> 9 </head> 10 <body> 11 <h1>Hola, {nombre}</h1> 12 <p>Este es mi primer sitio con Astro.</p> 13 </body> 14</html>
Ahora abre http://localhost:4321 👉 Verás: Hola, Astro 🚀
🧮 3. Variables y expresiones
Puedes usar cualquier variable o expresión JavaScript dentro de { }.
Ejemplo:
1--- 2const cursos = ["HTML", "CSS", "JavaScript", "Astro"]; 3--- 4 5<ul> 6 {cursos.map(curso => <li>{curso}</li>)} 7</ul>
Resultado:
- HTML
- CSS
- JavaScript
- Astro
💡 Astro convierte automáticamente esas expresiones en HTML.
🎨 4. Añadir CSS en una página .astro
Astro permite escribir CSS directamente dentro del archivo, y será local (solo afecta a esa página o componente).
Ejemplo:
1--- 2const titulo = "Bienvenido a mi web"; 3--- 4 5<style> 6 h1 { 7 color: #4f46e5; 8 text-align: center; 9 } 10 p { 11 text-align: center; 12 color: gray; 13 } 14</style> 15 16<h1>{titulo}</h1> 17<p>Hecho con 💜 y Astro</p>
✅ Este CSS solo se aplicará aquí, no al resto del sitio. Esto evita conflictos entre estilos de distintas páginas.
⚡ 5. Añadir JavaScript (interactividad)
Astro es estático por defecto, pero puedes añadir interactividad mínima con scripts.
Ejemplo:
1--- 2--- 3 4<html lang="es"> 5 <head> 6 <meta charset="UTF-8" /> 7 <title>Contador simple</title> 8 </head> 9 <body> 10 <button id="btn">Haz clic</button> 11 <p id="out">0</p> 12 13 <script> 14 let contador = 0; 15 document.getElementById("btn").addEventListener("click", () => { 16 contador++; 17 document.getElementById("out").textContent = contador; 18 }); 19 </script> 20 </body> 21</html>
🟢 Importante:
El código dentro de <script> sí se envía al navegador.
Por eso, conviene usarlo solo si realmente lo necesitas.
🧩 6. Componentes dentro de una página
Si tienes un componente en
src/components/Header.astro:
1<header> 2 <h1>🌟 Mi sitio en Astro</h1> 3</header>
Puedes importarlo en tu página así:
1--- 2import Header from '../components/Header.astro'; 3--- 4 5<Header /> 6<p>Bienvenido a mi web hecha con Astro</p>
💡 Esto te permite reutilizar secciones fácilmente.
📄 7. Páginas con metadatos (frontmatter)
Astro permite definir variables arriba del todo (como el “frontmatter” de Markdown).
Ejemplo:
1--- 2export const title = "Página de contacto"; 3export const description = "Puedes escribirme a través de este formulario."; 4--- 5 6<h1>{title}</h1> 7<p>{description}</p>
Esto es útil si luego quieres mostrar esos datos en layouts o SEO.
- Loading...