Rutas Estáticas y Dinámicas en Next.js: Creación y Uso Práctico

Clase 4 de 57Curso de Next.js 14

Resumen

¿Qué son las rutas estáticas y dinámicas en Next.js?

Next.js, uno de los frameworks más populares para construir aplicaciones React, maneja con destreza dos tipos principales de rutas: estáticas y dinámicas. Comprender estas distinciones es vital para diseñar aplicaciones eficientes y robustas. Las rutas estáticas son aquellas con un path fijo predefinido dentro de nuestro proyecto, mientras que las dinámicas se adaptan dependiendo de la URL ingresada, proporcionando flexibilidad y escalabilidad a la aplicación.

¿Cómo crear rutas estáticas?

La creación de rutas estáticas en Next.js es un proceso intuitivo, que se basa en la estructura de archivos y directorios del proyecto—a menudo denominado como "file system-based routing". Supongamos que estás desarrollando una tienda en línea. Puedes definir rutas estáticas creando un directorio específico y un archivo page.tsx correspondiente, siendo innecesario importar React explícitamente. Esta simplicidad es uno de los mayores atractivos del framework.

Por ejemplo, para definir la ruta de la tienda principal:

// Dentro del archivo store/page.tsx
export default function Store() {
  return <h1>Store</h1>;
}

¿Por qué usar rutas dinámicas?

Las rutas dinámicas se vuelven cruciales cuando nuestras URL's deben adaptarse a datos que cambian, como al navegar por categorías de productos que podríamos obtener de una API. En Next.js, estas rutas se definen mediante directorios que llevan el nombre del parámetro rodeado por corchetes.

Por ejemplo, para manejar categorías en una tienda en línea:

// Dentro del archivo store/[category]/page.tsx
interface CategoryProps {
  params: {
    category: string;
  };
}

export default function Category({ params }: CategoryProps) {
  return <h1>Categoría dinámica: {params.category}</h1>;
}

Aquí, params.category permite acceder al segmento de la ruta dinámica, facilitando el uso de datos específicos de la URL como un título o para consultar una API. Esto no solo simplifica la organización del código, sino que mejora el rendimiento al evitar la carga y re-renderización innecesaria de componentes.

¿Cómo aprovechar al máximo el sistema de rutas de Next.js?

El file system-based routing de Next.js ofrece una oportunidad para atomizar los componentes, mejorando la mantenibilidad de la aplicación al segmentar la lógica en piezas más pequeñas y especializadas. Al preferir este modelo sobre un aglomerado de componentes en un solo archivo, no solo mantienes el código más limpio, sino también más eficiente.

Al diseñar, pregúntate cómo puedes desglosar las funcionalidades en segmentos claros y reutilizables dentro de tu aplicación. ¿Puede cada categoría de productos en tu tienda ser un componente individual? De ser así, cada componente puede gestionarse de manera aislada, optimizando el renderizado y consumo de datos. Así, ante cambios, el impacto se minimiza y se facilita la adaptación del código a nuevas funcionalidades o arreglos.

El uso conjunto de rutas estáticas y dinámicas en Next.js ofrece una poderosa herramienta para construir aplicaciones web que sean no solamente funcionales sino también elegantes y fáciles de mantener. Mantengamos siempre presente el equilibrio entre simplicidad y escalabilidad, asegurando que cada ruta refuerce la estructura y eficiencia de nuestro proyecto.