⊗jsnxPmLtNL 42 of 57 menu

Layout-uri Îmbricate în NextJS

După cum știți, în folderul /app în fișierul /layout.jsx se află layout-ul principal al site-ului.

Dacă se dorește, totuși, în folderele imbricate se pot crea propriile layout-uri. În acest caz, conținutul paginii va fi mai întâi introdus în layout-ul imbricat, iar apoi rezultatul obținut va fi introdus în layout-ul principal.

Să încercăm în practică. Să presupunem că layout-ul nostru principal are următoarea formă:

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

Să creăm încă un layout imbricat pentru toate conținuturile din folderul /users:

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

După cum vedeți, în acest layout nu specificăm tag-urile principale ale paginii, deoarece ele sunt deja prezente în layout-ul nostru principal al site-ului.

Să creăm de asemenea un fișier cu conținut pentru afișarea utilizatorului:

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

După aceste manipulări, structura noastră de fișiere va arăta astfel:

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

Acum, dacă accesăm URL-ul corespunzător, NextJS va asambla totul împreună și în browser vom obține următorul cod HTML final:

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

Creați pe site o secțiune cu utilizatori și o secțiune cu postări. Creați în fiecare secțiune propriul layout, care va moșteni de la layout-ul principal al site-ului.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge