⊗jsnxPmLtNL 42 of 57 menu

Indlejrede layouts i NextJS

Som du ved, i mappen /app i filen /layout.jsx placeres hovedlayoutet for hjemmesiden.

Hvis ønsket, kan der dog i indlejrede mapper oprettes egne layouts. I dette tilfælde vil sidens indhold først blive indsat i det indlejrede layout, og derefter vil det resulterende resultat blive indsat i hovedlayoutet.

Lad os prøve det i praksis. Lad vores hovedlayout have følgende udseende:

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

Lad os lave endnu et, indlejret layout for alt indhold fra mappen /users:

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

Som du kan se, angiver vi i dette layout ikke sidens grundlæggende tags, da de allerede findes i vores hovedlayout for hjemmesiden.

Lad os også lave en fil med indhold til visning af en bruger:

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

Efter disse manipulationer vil vores filstruktur se sådan ud:

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

Nu, hvis du tilgår den tilsvarende URL, samler NextJS alt sammen, og i browseren får vi følgende endelige HTML-kode:

<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>

Lav en sektion med brugere og en sektion med indlæg på hjemmesiden. Lav i hver sektion dit eget layout, som vil arve fra hjemmesidens hovedlayout.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis