⊗jsnxPmLtNL 42 of 57 menu

Kapslade layouter i NextJS

Som du vet, i mappen /app i filen /layout.jsx finns webbplatsens huvudlayout.

Om så önskas kan man dock i kapslade mappar skapa sina egna layouter. I så fall kommer sidans innehåll först att infogas i den kapslade layouten, och sedan kommer det resulterande resultatet att infogas i huvudlayouten.

Låt oss prova i praktiken. Antag att vår huvudlayout har följande utseende:

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

Låt oss skapa ytterligare en, kapslad layout för allt innehåll från mappen /users:

export default function UsersLayout({children}) { return ( <div className="info"> message for all users </div> <div className="content"> {children} </div> ); }

Som du ser anger vi inte sidans grundläggande taggar i den här layouten, eftersom de redan finns i vår huvudsakliga webbplatslayout.

Låt oss också skapa en fil med innehåll för att visa användaren:

export default function User() { return <> <h1>User</h1> <p> user description </p> </>; }

Efter dessa manipulationer kommer vår filstruktur att se ut så här:

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

Nu, om du går till motsvarande URL, kommer NextJS att sätta ihop allt och i webbläsaren får vi följande slutliga HTML-kod:

<html lang="en"> <body> <header> header </header> <main> <div class="info"> message for all users </div> <h1>User</h1> <p> user description </p> </main> <footer> footer </footer> </body> </html>

Skapa en sektion för användare och en sektion för inlägg på webbplatsen. Skapa i varje sektion en egen layout som ärver från webbplatsens huvudlayout.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa