El objeto Astro
Dentro del frontmatter de cualquier .astro, Astro es un objeto global con todo el contexto de esa página/componente en ese render — sin importar nada.
Astro.props — Props del componente
Sección titulada «Astro.props — Props del componente»Lo que le pasaron a este componente desde afuera. Tipalo con una interfaz Props.
---interface Props { titulo: string destacado?: boolean}const { titulo, destacado = false } = Astro.props---
<h2 class:list={["titulo", { destacado }]}>{titulo}</h2>Astro.params — Segmentos dinámicos
Sección titulada «Astro.params — Segmentos dinámicos»En una ruta [id].astro, el valor de [id] para el render actual.
---const { slug } = Astro.params---Astro.url y Astro.request
Sección titulada «Astro.url y Astro.request»Astro.url es un URL normalizado de la request actual — útil para construir canonical URLs, leer query params fuera directamente ruta con getStaticPaths. Astro.request es el Request estándar completo (headers, method).
---const canonicalURL = new URL(Astro.url.pathname, Astro.site)const metodo = Astro.request.method---
<link rel="canonical" href={canonicalURL}/>Astro.redirect() — Redirigir
Sección titulada «Astro.redirect() — Redirigir»Solo funciona en rutas on-demand (no prerenderizadas) — hay que hacer return del resultado para que surta efecto.
---if (!sesionActiva) { return Astro.redirect("/login")}---Astro.cookies — Leer y escribir cookies
Sección titulada «Astro.cookies — Leer y escribir cookies»También requiere renderizado on-demand. get, set, has, delete.
---const tema = Astro.cookies.get("tema")?.value ?? "oscuro"Astro.cookies.set("visitas", "1", { maxAge: 60 * 60 * 24 })---Astro.locals — Lo que dejó el middleware
Sección titulada «Astro.locals — Lo que dejó el middleware»Lee lo que un middleware haya guardado en context.locals para esa request — así una página no repite la misma lógica que ya corrió antes.
---const usuario = Astro.locals.usuarioif (!usuario) return Astro.redirect("/login")---
<p>Hola, {usuario.nombre}</p>Propiedades de Astro en una mirada
Sección titulada «Propiedades de Astro en una mirada»| Propiedad | Qué da |
|---|---|
Astro.props | Props pasadas al componente |
Astro.params | Segmentos dinámicos de la URL ([slug]) |
Astro.url | URL normalizada de la request actual |
Astro.request | Request estándar completo |
Astro.redirect(ruta) | Redirigir (solo en rutas on-demand) |
Astro.cookies | Leer/escribir cookies (solo en rutas on-demand) |
Astro.locals | Datos dejados por el middleware para esta request |
Disponibilidad y límites de seguridad
Sección titulada «Disponibilidad y límites de seguridad»Astro.redirect()yAstro.cookies.set()no funcionan en páginas prerenderizadas (estáticas) — necesitanexport const prerender = falseen ese archivo, o el proyecto entero conoutput: 'server'.Astro.paramssolo tiene valor en rutas dinámicas ([algo].astro) — en una ruta fija, es un objeto vacío.Astro.localsestá tipado comoanypor defecto — para autocompletado, se extiende la interfazApp.Localsensrc/env.d.ts, igual que en Next conApp.Localsenenv.d.ts.