⊗jsnxPmLtNL 42 of 57 menu

Zagnieżdżone layouty w NextJS

Jak wiesz, w folderze /app w pliku /layout.jsx znajduje się główny layout strony.

W razie potrzeby, jednak, w zagnieżdżonych folderach można tworzyć własne layouty. W tym przypadku treść strony będzie najpierw wstawiana do zagnieżdżonego layoutu, a następnie otrzymany wynik zostanie wstawiony do głównego layoutu.

Spróbujmy w praktyce. Niech nasz główny layout ma następujący wygląd:

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

Zróbmy jeszcze jeden, zagnieżdżony layout dla wszystkich treści z folderu /users:

export default function UsersLayout({children}) { return ( <div className="info"> wiadomość dla wszystkich użytkowników </div> <div className="content"> {children} </div> ); }

Jak widzisz, w tym layoucie nie podajemy podstawowych tagów strony, ponieważ są one już w naszym głównym layoucie strony.

Zróbmy również plik z treścią do pokazania użytkownika:

export default function User() { return <> <h1>Użytkownik</h1> <p> opis użytkownika </p> </>; }

Po tych manipulacjach nasza struktura plików będzie wyglądać tak:

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

Teraz, jeśli przejdziemy pod odpowiedni URL, NextJS złoży wszystko razem i w przeglądarce otrzymamy następujący końcowy kod HTML:

<html lang="en"> <body> <header> header </header> <main> <div class="info"> wiadomość dla wszystkich użytkowników </div> <h1>Użytkownik</h1> <p> opis użytkownika </p> </main> <footer> footer </footer> </body> </html>

Zrób na stronie sekcję z użytkownikami i sekcję z postami. Zrób w każdej sekcji własny layout, który będzie dziedziczyć z głównego layoutu strony.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć