Menu
Coddy logo textTech

El diseño raíz

Parte de la sección Esenciales de Next.js del Journey de React de Coddy. Lección 11 de 47.

Cada aplicación tiene partes que nunca cambian: la estructura de la página, un encabezado y un pie de página. En Next.js, estas se encuentran en un layout, y el más externo se llama root layout.

Es el archivo que has tenido bloqueado frente a ti todo este tiempo:

// app/layout.jsx
export default function RootLayout({ children }) {
    return (
        <html lang="en">
            <body>
                {children}
            </body>
        </html>
    );
}

Tres cosas lo diferencian de una página:

  • Es obligatorio, y es el único archivo que renderiza <html> y <body>
  • Recibe children, independientemente de la página con la que coincida la URL. Si olvidas renderizar {children}, tu app no mostrará nada excepto la estructura base.
  • Envuelve a cada ruta en la app, sin que ninguna página necesite importarlo

Persiste

Esta es la parte que sorprende a la gente. Cuando el usuario pasa de / a /menu, el diseño no se vuelve a crear. Next.js cambia la página que contiene y deja el diseño intacto.

Así, un encabezado compartido no parpadea, un video en la barra lateral sigue reproduciéndose y cualquier estado que resida en el diseño sobrevive a la navegación: un menú abierto permanece abierto y una posición de desplazamiento se mantiene. Un diseño es un marco de larga duración; las páginas entran y salen dentro de él.

Una consecuencia que vale la pena recordar: como un diseño no se vuelve a ejecutar al navegar, no puede leer los searchParams de la página actual. No está escuchando el cambio.

Pruébalo tú mismo

Esta lección no incluye un desafío de código.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Esenciales de Next.js