La creación de rutas en Next.js esta basado en file-system based routing mediante App Router, que es el estándar actual. Este indica que la estructura de archivos y carpetas dentro de la carpeta /app determina las rutas de tu aplicación.

Aquí te presento algunos ejemplos de cómo crear diferentes tipos de rutas utilizando el App Router en Next.js.

Rutas básicas

Cada archivo page.tsx dentro de una carpeta dentro del directorio app/ representa una ruta en tu aplicación Next.js.

ArchivoRuta
app/page.tsx/
app/about/page.tsx/about
app/contact/page.tsx/contact

Rutas anidadas

Puedes crear rutas anidadas simplemente creando subdirectorios dentro de la carpeta app:

ArchivoRuta
app/dashboard/page.tsx/dashboard
app/dashboard/reportes/page.tsx/dashboard/reportes
app/dashboard/usuarios/page.tsx/dashboard/usuarios

Rutas agrupadas (Route Groups)

Utilizar rutas agrupadas nos permite organizar mejor nuestras paginas sin afectar las URLs finales, se crean utilizando (parentesis) en el nombre de la carpeta.

ArchivoRuta
app/(landing)/cyberday/page.tsx/cyberday
app/(landing)/blackfriday/page.tsx/blackfriday
app/(dashboard)/usuarios/page.tsx/usuarios
app/(dashboard)/configuracion/page.tsx/configuracion

Además, nos permite definir layouts específicos para cada grupo de rutas:

app/
├── (landing)/
│   ├── layout.tsx         # Layout específico para landing pages
│   ├── cyberday/
│   │   └── page.tsx
│   └── blackfriday/
│       └── page.tsx
└── (dashboard)/
    ├── layout.tsx         # Layout específico para dashboard
    ├── usuarios/
    │   └── page.tsx
    └── configuracion/
        └── page.tsx
├── layout.tsx             # Layout global de la aplicación
└── page.tsx               # Página de inicio

Rutas dinámicas

Las rutas dinámicas se crean utilizando [corchetes] en los nombres de las carpetas. Estás permiten generar rutas basadas en datos dinámicos, como IDs de productos o nombres de usuario.

ArchivoRuta
app/productos/[id]/page.tsx/productos/abc123
app/usuarios/[username]/page.tsx/usuarios/miguel-quispe-dev
app/blog/[slug]/page.tsx/blog/crear-proyecto-con-nextjs

Rutas con segmentos opcionales

Las rutas con segmentos opcionales se crean utilizando doble corchete [[...nombre]]. y permiten que una ruta acepte múltiples niveles de profundidad.

ArchivoRuta
app/categoria/[[...slug]]/page.tsx/categoria/
/categoria/tecnologia
/categoria/tecnologia/frontend
/categoria/tecnologia/frontend/nextjs

Nota

En los ejemplos la extensión de los archivos es .tsx, pero también puedes usar .js o .jsx .

Puedes encontrar más información sobre manejo de rutas en la documentación oficial de Next.js.

Gracias por leer, que tengas un día maravilloso! 🌞