Uso de getStaticPaths y getStaticProps en Next.js para páginas dinámicas
Clase 11 de 19 • Curso de Next.js: Sitios Estáticos y Jamstack
Contenido del curso
- 3

Arquitectura Jam Stack con Next.js y GraphQL
03:17 - 4

Configuración de Contentful: Creación de Cuenta y API Tokens
06:17 - 5

Importación de Datos y Configuración en Contentful
08:00 - 6

Configuración y uso inicial de un proyecto Next.js con Contentful
10:51 - 7

Uso de GraphQL y Autogeneración en Next.js con Contentful
22:27
- 8

Renderizado de Listas con Next.js y Contentful
09:41 - 9

"Uso de getStaticProps en Next.js para Renderizado en Servidor"
11:21 - 10

Páginas Dinámicas en Next.js: Renderizado de Plantas y Entradas
14:40 - 11

Uso de getStaticPaths y getStaticProps en Next.js para páginas dinámicas
21:16 - 12

Ventajas y desventajas de Static Site Generation en Next.js
04:01
- 13

Configuración de Incremental Static Generation en Next.js
09:53 - 14

Uso del Fallback en Next.js: Estrategias y Aplicaciones
03:54 - 15

Estrategia Stale-While-Revalidate en Next.js
04:26 - 16

Ventajas y desventajas del Incremental Static Generation en Next.js
04:51 - 17

Server Side Rendering con Next.js: Ventajas y Desventajas
03:40
¿Cómo se utiliza Get Static Props en Next.js?
Cuando construimos aplicaciones web, una estrategia eficiente de renderizado puede marcar la diferencia en la experiencia del usuario. En Next.js, getStaticProps juega un papel crucial para optimizar nuestras páginas, especialmente cuando se trata del "Build Time". Este método es ideal para las páginas no dinámicas ya que proporciona a React información de manera anticipada sobre qué datos se requerirán.
¿Cómo funciona getStaticProps?
- Solo se ejecuta una vez, durante el proceso de construcción (build time).
- Determina los datos necesarios para mostrar la página estáticamente.
- Devuelve propiedades que utiliza la página en cuestión.
Por ejemplo, si queremos alimentar nuestra página con información de una planta, getStaticProps nos permite definir qué propiedades (props) necesita React para renderizar la página correctamente.
export async function getStaticProps(context) {
const data = await fetch('https://miapi.com/planta');
const planta = await data.json();
return {
props: {
planta,
},
};
}
Aquí, recuperamos los datos de una API y los pasamos como propiedades que usará la página.
¿Qué es Get Static Paths y cómo se utiliza?
Cuando te encuentras gestionando páginas dinámicas, como entradas de blogs con slugs dinámicos en sus URLs, getStaticPaths es tu aliado. Este método complementa a getStaticProps y le dice a Next.js qué rutas dinámicas necesitamos generar en el momento de la construcción.
¿Cómo definir los caminos con getStaticPaths?
- Define qué rutas se deben construir estáticamente.
- Utiliza un array donde cada elemento es un objeto que contiene las propiedades necesarias para cada página.
export async function getStaticPaths() {
const res = await fetch('https://miapi.com/plantas');
const plantas = await res.json();
const paths = plantas.map((planta) => ({
params: { slug: planta.slug },
}));
return { paths, fallback: false };
}
En el ejemplo, se traen las plantas desde una API, generando un array de rutas que Next.js usará para crear esas páginas en el build time.
¿Cómo mejorar la escalabilidad de nuestras páginas?
El uso combinado de getStaticProps y getStaticPaths proporciona eficiencia, pero, como cualquier estrategia, tiene sus limitaciones. Por ejemplo, la necesidad de definir todas las rutas en build time puede presentar problemas si el número de páginas crece enormemente. Para abordar esta limitación:
- Optimización de Peticiones: Utilizar límites en peticiones API para no cargar más información de la necesaria.
- Validación de Slugs: Implementar validaciones para asegurar que los slugs dinámicos sean correctos y prevenir errores en las rutas.
- Pruebas Efectivas: Realizar pruebas para visualizar el desempeño de la aplicación y ajustar las configuraciones de build si es necesario.
Explora todo el potencial de Next.js
La capacidad de generar páginas de manera estática es solo una de las muchas características avanzadas de Next.js. Para profundizar y dominar estas técnicas, considera explorar cursos que cubren desde fundamentos hasta aspectos técnicos avanzados. ¡Nunca dejes de aprender y experimentar con nuevas estrategias para mejorar la experiencia y el rendimiento de tus proyectos!