⊗jsnxPmLtNL 42 of 57 menu

Diseños Anidados en NextJS

Como sabes, en la carpeta /app en el archivo /layout.jsx se encuentra el diseño principal del sitio.

Si se desea, sin embargo, en las carpetas anidadas se pueden crear diseños propios. En este caso el contenido de la página será primero insertado en el diseño anidado, y luego el resultado obtenido será insertado en el diseño principal.

Probemos en la práctica. Supongamos que nuestro diseño principal tiene la siguiente apariencia:

export default function RootLayout({children}) { return ( <html lang="en"> <body> <header> header </header> <main> {children} </main> <footer> footer </footer> </body> </html> ); }

Hagamos otro, diseño anidado para todos los contenidos de la carpeta /users:

export default function UsersLayout({children}) { return ( <div className="info"> mensaje para todos los usuarios </div> <div className="content"> {children} </div> ); }

Como ves, en este diseño no indicamos las etiquetas principales de la página, ya que ya están en nuestro diseño principal del sitio.

Hagamos también un archivo con contenido para mostrar al usuario:

export default function User() { return <> <h1>Usuario</h1> <p> descripción del usuario </p> </>; }

Después de estas manipulaciones nuestra estructura de archivos se verá así:

  • /app/
    • layout.jsx
    • /users/
      • layout.jsx
      • /show/
        • page.jsx

Ahora, si accedemos a la URL correspondiente, NextJS juntará todo y en el navegador obtendremos el siguiente código HTML final:

<html lang="en"> <body> <header> header </header> <main> <div class="info"> mensaje para todos los usuarios </div> <h1>Usuario</h1> <p> descripción del usuario </p> </main> <footer> footer </footer> </body> </html>

Crea en el sitio una sección de usuarios y una sección de publicaciones. Crea en cada sección su propio diseño, que herede del diseño principal del sitio.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar