⊗jsnxPmLtNL 42 of 57 menu

Įdėtieji maketai NextJS

Kaip jau žinote, aplanke /app faile /layout.jsx yra pagrindinis svetainės maketas.

Norint, tačiau, įdėtuose aplankuose galima kurti savo maketus. Tokiu atveju puslapio turinys bus pirmiausia įterpiamas į įdėtąjį maketą, o po to gautas rezultatas bus įterpiamas į pagrindinį maketą.

Pabandykime praktiškai. Tarkime, mūsų pagrindinis maketas turi tokį vaizdą:

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

Sukurkime dar vieną, įdėtą maketą visiems turiniams iš aplanko /users:

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

Kaip matote, šiame makete nenurodome pagrindinių puslapio žymių, nes jos jau yra mūsų pagrindiniame svetainės makete.

Sukurkime taip pat failą su turiniu vartotojo rodymui:

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

Po šių manipuliacijų mūsų failų struktūra atrodys taip:

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

Dabar, jei kreipsitės atitinkamu URL, NextJS viską sujungs ir naršyklėje gausime tokį galutinį 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>

Sukurkite svetainėje skiltį su vartotojais ir skiltį su įrašais. Kiekvienoje skiltyje sukurkite savo maketą, kuris paveldės iš pagrindinio svetainės maketo.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti