getInitialProps
Es bueno saberlo:
getInitialProps
es una API heredada. Recomendamos usargetStaticProps
ogetServerSideProps
en su lugar.
getInitialProps
es una función async
que se puede agregar al componente React exportado por defecto de una página. Se ejecutará tanto en el lado del servidor como nuevamente en el lado del cliente durante las transiciones de página. El resultado de la función se pasará al componente React como props
.
Es bueno saberlo:
- Los datos devueltos por
getInitialProps
se serializan al renderizar en el servidor. Asegúrate de que el objeto devuelto porgetInitialProps
sea unObject
simple, y no usesDate
,Map
oSet
.- Para la carga inicial de la página,
getInitialProps
solo se ejecutará en el servidor.getInitialProps
también se ejecutará en el cliente al navegar a una ruta diferente con el componentenext/link
o usandonext/router
.- Si se usa
getInitialProps
en un_app.js
personalizado y la página a la que se navega usagetServerSideProps
, entoncesgetInitialProps
también se ejecutará en el servidor.
Objeto Contexto
getInitialProps
recibe un único argumento llamado context
, que es un objeto con las siguientes propiedades:
Nombre | Descripción |
---|---|
pathname | Ruta actual, el path de la página en /pages |
query | Cadena de consulta de la URL, analizada como un objeto |
asPath | String del path real (incluyendo la consulta) mostrado en el navegador |
req | Objeto de solicitud HTTP (solo servidor) |
res | Objeto de respuesta HTTP (solo servidor) |
err | Objeto de error si se encuentra algún error durante el renderizado |
Consideraciones
getInitialProps
solo se puede usar en archivos de nivel superior enpages/
, y no en componentes anidados. Para obtener datos anidados a nivel de componente, considera explorar el App Router.- Independientemente de si tu ruta es estática o dinámica, cualquier dato devuelto por
getInitialProps
comoprops
podrá examinarse en el lado del cliente en el HTML inicial. Esto es para permitir que la página se hidrate correctamente. Asegúrate de no pasar ninguna información sensible que no deba estar disponible en el cliente a través deprops
.