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.
| Archivo | Ruta |
|---|---|
| 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:
| Archivo | Ruta |
|---|---|
| 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.
| Archivo | Ruta |
|---|---|
| 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.
| Archivo | Ruta |
|---|---|
| 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.
| Archivo | Ruta |
|---|---|
| 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! 🌞