⊗jsnxPmLtNL 42 of 57 menu

Ενσωματωμένα Layouts στο NextJS

Όπως γνωρίζετε, στον φάκελο /app στο αρχείο /layout.jsx βρίσκεται το κύριο layout του site.

Εάν επιθυμείτε, ωστόσο, σε εμφωλευμένους φακέλους μπορείτε να δημιουργήσετε τα δικά σας layouts. Σε αυτήν την περίπτωση, το περιεχόμενο της σελίδας θα πρώτα εισαχθεί στο εμφωλευμένο layout, και στη συνέχεια το αποτέλεσμα που προκύπτει θα εισαχθεί στο κύριο layout.

Ας δοκιμάσουμε στην πράξη. Ας υποθέσουμε ότι το κύριο layout μας έχει την ακόλουθη μορφή:

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

Ας δημιουργήσουμε ένα ακόμη, εμφωλευμένο layout για όλα τα περιεχόμενα από τον φάκελο /users:

export default function UsersLayout({children}) { return ( <div className="info"> μήνυμα για όλους τους χρήστες </div> <div className="content"> {children} </div> ); }

Όπως βλέπετε, σε αυτό το layout δεν υποδεικνύουμε τις βασικές ετικέτες της σελίδας, καθώς αυτές υπάρχουν ήδη στο κύριο layout του site μας.

Ας δημιουργήσουμε επίσης ένα αρχείο με περιεχόμενο για την εμφάνιση του χρήστη:

export default function User() { return <> <h1>Χρήστης</h1> <p> περιγραφή χρήστη </p> </>; }

Μετά από αυτές τις διαδικασίες, η δομή των αρχείων μας θα μοιάζει ως εξής:

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

Τώρα, εάν επισκεφθείτε το αντίστοιχο URL, το NextJS θα τα συναρμολογήσει όλα μαζί και στο πρόγραμμα περιήγησης θα λάβουμε τον ακόλουθο τελικό κώδικα HTML:

<html lang="en"> <body> <header> header </header> <main> <div class="info"> μήνυμα για όλους τους χρήστες </div> <h1>Χρήστης</h1> <p> περιγραφή χρήστη </p> </main> <footer> footer </footer> </body> </html>

Δημιουργήστε στο site μια ενότητα για χρήστες και μια ενότητα για αναρτήσεις. Δημιουργήστε σε κάθε ενότητα το δικό της layout, το οποίο θα κληρονομεί από το κύριο layout του site.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη