Como crear rutas en Next.js 13

by Lara Alonso
¿Te vuelves loc@ con Next.js 13 y sus rutas?. En un momento vemos cuales son las diferencias.

En Next.js 12 o anterior usábamos la carpeta pages. Cada archivo en el directorio /src/pages se convierte automáticamente en una ruta accesible en tu aplicación.
Por ejemplo, si tienes un archivo pages/about.js, se creará una ruta /about en tu aplicación Next.js. Si tienes un archivo pages/blog/post.js, se creará una ruta /blog/post en tu aplicación.
Además de la estructura de archivos y carpetas, Next.js también proporciona una funcionalidad adicional para la creación de rutas utilizando parámetros dinámicos. Puedes crear rutas dinámicas mediante la inclusión de corchetes [] en el nombre de un archivo dentro del directorio pages. Por ejemplo, un archivo llamado pages/blog/[slug].js creará una ruta dinámica donde slug puede ser cualquier valor en la URL.

Y entonces, ¿Qué ha cambiado en Next.js 13?

Lo primero decirte que puedes seguir utilizando la carpeta pages como hacías en las anteriores versiones. Simplemente cuando hagas las instalación de Next indica que quieres seguir utilizando la carpeta /src
Pero si no es así, utilizarás directamente la carpeta app en vez de src. La carpeta app tiene ventajas contra la carpeta /src.
La nueva estructura nos permite incluir archivos adicionales que podemos utilizar
  • Page: Que será la página que queremos renderizar.
  • Layout: Componentes de UI que serán compartidos entre varias páginas, la documentación dice que sin problema podremos tener layouts dentro de otros layouts.
  • Loading: Componente que cargará automáticamente cuando tengamos un componente Suspense de React, cuando este termine de cargar, se reemplazará automáticamente.
  • Error: Al igual que el componente loading, es uno que funcionará junto al componente de React ErrorBoundary, el cual desplegará el componente error cuando uno de estos ocurra.
  • Template: Siendo opcional y similar a Layout con la diferencia que no guardará el estado de sus componentes hijos y los efectos serán reiniciados, este será como una recarga total cuando navegamos dentro de uno de estos componentes.
  • Head: Es un archivo opcional para cambiar el contenido de la etiqueta head.

  • Ruta Next.js
    Si has llegado hasta aquí y no sabes aún de que va Next.js puedes leer mi post Crea tu primera aplicación en Next.js 13
    Lara Alonso

    Lara Alonso @aiadevop

    Soy desarrolladora de software en España. Especializada en frontend, creo experiencias web y aplicaciones. Explora mi portfolio y descubre mis proyectos.

    ¡Tu visión mi código!
    Gracias a todos los que han colaborado en este blog