⊗jsnxPmLtNL 42 of 57 menu

Vnořené layouty v NextJS

Jak víte, v složce /app v souboru /layout.jsx se nachází hlavní layout webu.

V případě potřeby však lze vnořených složkách vytvářet vlastní layouty. V tomto případě bude obsah stránky nejprve vložen do vnořeného layoutu a poté bude výsledek vložen do hlavního layoutu.

Pojďme to vyzkoušet v praxi. Nechť náš hlavní layout má následující podobu:

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

Vytvořme ještě jeden, vnořený layout pro veškerý obsah ze složky /users:

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

Jak vidíte, v tomto layoutu neuvádíme základní tagy stránky, protože již jsou v našem hlavním layoutu webu.

Vytvořme také soubor s obsahem pro zobrazení uživatele:

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

Po těchto manipulacích bude naše souborová struktura vypadat takto:

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

Nyní, pokud přistoupíme na příslušnou URL, NextJS vše spojí dohromady a v prohlížeči získáme následující výsledný HTML kód:

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

Vytvořte na webu sekci s uživateli a sekci s příspěvky. V každé sekci vytvořte vlastní layout, který bude dědit od hlavního layoutu webu.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικά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
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout