byandrev's blog
  • #astro
  • #web
  • #view-transitions

dasdasdas

2 min read

Frase

El problema es que ClientRouter de astro:transitions usa View Transitions API, lo que significa que las páginas no se recargan completamente al navegar. Tu

La clave es astro:page-load — este evento se dispara en cada carga de página dentro del ClientRouter, no solo en la primera.

document.referrer es una propiedad que el navegador setea solo en la carga inicial del documento (cuando hay una navegación real HTTP). Refleja de dónde vino la petición que generó ese document.

Cuando usas (View Transitions), Astro no hace navegaciones reales entre páginas del mismo sitio — en su lugar:

Intercepta el click en el link Hace un fetch() de la página destino Reemplaza el contenido del DOM actual (swap) Actualiza la URL con history.pushState()

Como nunca ocurre una navegación real del navegador, document.referrer se queda congelado con el valor que tenía en la primera carga real de la página (o vacío si fue la primera visita), y no se actualiza en cada "navegación" subsecuente por SPA.