Chuck's Academy

Next.js

Implementación de Layouts en el Page Router

En este capítulo, vamos a aprender cómo implementar layouts en una aplicación Next.js 13 utilizando el Page Router. Aunque el App Router de Next.js 13 introdujo un sistema nativo para trabajar con layouts, el Page Router también permite crear layouts reutilizables utilizando componentes personalizados.

Los layouts permiten crear una estructura consistente en toda la aplicación, incluyendo elementos comunes como encabezados, pies de página o barras de navegación, sin tener que repetir el código en cada página.

Creación de Layouts en el Page Router

En el Page Router, los layouts no tienen un soporte nativo como en el App Router, pero podemos organizarlos manualmente como componentes reutilizables. A continuación, veremos cómo crear un layout básico que se aplique a varias páginas de nuestra aplicación.

Layout Básico

Vamos a crear un layout básico que incluya un encabezado y un pie de página. Este layout envolverá el contenido de nuestras páginas.

javascript
"Este código muestra un layout básico que incluye un encabezado con el texto 'Global Header', un contenedor 'main' para el contenido de la página y un pie de página con el texto 'Global Footer'. El contenido de las páginas se renderiza dentro del layout utilizando la propiedad children."

El layout Layout.js se puede utilizar en varias páginas para mantener la coherencia de la interfaz de usuario.

Aplicar el Layout a una Página

Una vez que hemos creado el layout, podemos aplicarlo a las páginas importando y envolviendo el contenido de cada página dentro del componente Layout.

javascript
"Este ejemplo muestra cómo aplicar el layout a una página estática de la aplicación. El contenido de la página 'About Us' se renderiza dentro del layout global, lo que incluye el encabezado y el pie de página."

Este patrón permite reutilizar el layout en múltiples páginas sin tener que duplicar código.

Layouts Anidados

En algunas aplicaciones, puede ser útil tener layouts anidados, donde ciertos componentes de la interfaz se comparten entre varias rutas, pero otros componentes varían. Para implementar layouts anidados en el Page Router, podemos combinar varios componentes de layout.

Ejemplo de Layout Anidado

Supongamos que tenemos un layout general para toda la aplicación, pero queremos un layout específico para la sección de administración (/admin).

javascript
javascript
"Aquí tenemos un layout anidado para la sección de administración. Utilizamos el layout global y añadimos una barra lateral de navegación específica para las rutas de administración."

En este ejemplo, reutilizamos el layout general para toda la aplicación, pero añadimos un layout específico con una barra de navegación lateral para la sección de administración.

Ventajas de Usar Layouts en el Page Router

Aunque el Page Router no tiene soporte nativo para layouts como el App Router, implementar layouts personalizados tiene varias ventajas:

  1. Reutilización de código: Los layouts permiten mantener componentes comunes, como encabezados y pies de página, en un solo lugar.

  2. Consistencia en la interfaz: Aplicar un layout global a todas las páginas asegura que la aplicación tenga una apariencia coherente.

  3. Flexibilidad: Los layouts anidados permiten adaptar diferentes secciones de la aplicación con sus propios componentes específicos.

Optimización de Layouts

Para mejorar el rendimiento de la aplicación al usar layouts, podemos aplicar técnicas como la carga dinámica de componentes que no son críticos para el renderizado inicial.

Ejemplo de Carga Dinámica

Podemos utilizar la función dynamic() de Next.js para cargar componentes de manera dinámica. Esto es útil para partes del layout que no son esenciales en el momento del primer renderizado.

javascript
"Este ejemplo muestra cómo cargar dinámicamente el pie de página utilizando la función dynamic de Next.js. Esto permite mejorar el rendimiento al evitar cargar el pie de página hasta que sea necesario."

Esto puede ayudar a reducir el tiempo de carga inicial, especialmente si el pie de página o cualquier otra parte del layout contiene contenido que no es crítico.

Conclusión

En este capítulo, hemos aprendido cómo implementar layouts reutilizables y anidados en una aplicación Next.js 13 utilizando el Page Router. Los layouts nos permiten mantener la coherencia de la interfaz de usuario y reducir la duplicación de código. Aunque el Page Router no tiene soporte nativo para layouts como el App Router, podemos crear layouts personalizados que se ajusten a las necesidades de nuestra aplicación.


Pregúntame lo que sea