Mostrar una lista de cosas es probablemente lo que más vas a hacer en tu vida web: posts en un blog, productos en una tienda, mensajes en un chat, items en un menú. En Astro la fórmula es siempre la misma: un array y un .map().
Tres ideas clave:
.map() va dentro de llaves {} en el HTML..map devuelve JSX-like: etiquetas con expresiones.Si el callback es una expresión (sin return explícito), envuelve la JSX en paréntesis:
Si necesitas lógica antes de devolver, usa llaves y return:
Lo habitual es trabajar con arrays de objetos:
key?A diferencia de React, Astro no necesita key en el JSX-like del template. El motivo es que el HTML se renderiza una sola vez (en build o en server) y no hay reconciliación de virtual DOM.
Si más adelante usas un componente de framework (React, Vue, Solid...) como una isla, ahí sí aplica la regla del framework correspondiente.
Puedes encadenar .filter, .sort, .slice antes de .map:
Recuerda: todo eso ocurre en build/server. El navegador no ejecuta nada.
Abre src/pages/index.astro. Tu trabajo:
tareas con al menos 3 strings (las cosas que quieres hacer hoy).<ul>, escribe {tareas.map((t) => <li>{t}</li>)} para imprimir cada una.t.toUpperCase().Cuando funcione, mira el HTML resultante en el preview: verás los <li> ya pintados, sin rastro del .map.