⊗jsnxPmLtNL 42 of 57 menu

Vnorené layouty v NextJS

Ako viete, v priečinku /app v súbore /layout.jsx sa nachádza hlavný layout stránky.

V prípade potreby je však možné v podpriečinkoch vytvoriť vlastné layouty. V takom prípade sa obsah stránky najprv vloží do vnoreného layoutu a výsledok sa následne vloží do hlavného layoutu.

Vyskúšajme si to v praxi. Predpokladajme, že náš hlavný layout vyzerá nasledovne:

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

Vytvorme ďalší, vnorený layout pre všetky obsahy z priečinka /users:

export default function UsersLayout({children}) { return ( <div className="info"> správa pre všetkých používateľov </div> <div className="content"> {children} </div> ); }

Ako vidíte, v tomto layoute neuvádzame základné štruktúrne tagy stránky, pretože sú už obsiahnuté v hlavnom layoute stránky.

Vytvorme tiež súbor s obsahom pre zobrazenie používateľa:

export default function User() { return <> <h1>Používateľ</h1> <p> popis používateľa </p> </>; }

Po týchto úpravách bude naša štruktúra súborov vyzerať nasledovne:

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

Teraz, pri prístupu na príslušnú URL adresu, NextJS všetko zloží dohromady a v prehliadači dostaneme nasledujúci výsledný HTML kód:

<html lang="en"> <body> <header> header </header> <main> <div class="info"> správa pre všetkých používateľov </div> <h1>Používateľ</h1> <p> popis používateľa </p> </main> <footer> footer </footer> </body> </html>

Vytvorte na stránke sekciu pre používateľov a sekciu pre príspevky. V každej sekcii vytvorte vlastný layout, ktorý bude dediť od hlavného layoutu stránky.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť