Iegultie izkārtojumi NextJS
Kā jūs zināt, mapē /app
failā /layout.jsx
atrodas vietnes galvenais izkārtojums.
Vēloties, tomēr, iegultajās mapēs var izveidot savus izkārtojumus. Šajā gadījumā lapas saturs vispirms tiks ievietots iegultajā izkārtojumā, un pēc tam iegūtais rezultāts tiks ievietots galvenajā izkārtojumā.
Izmēģināsim praksē. Pieņemsim, ka mūsu galvenajam izkārtojumam ir šāds izskats:
export default function RootLayout({children}) {
return (
<html lang="en">
<body>
<header>
header
</header>
<main>
{children}
</main>
<footer>
footer
</footer>
</body>
</html>
);
}
Izveidosim vēl vienu,
iegulto izkārtojumu visiem
satiem no mapes /users:
export default function UsersLayout({children}) {
return (
<div className="info">
message for all users
</div>
<div className="content">
{children}
</div>
);
}
Kā jūs redzat, šajā izkārtojumā mēs norādām lapas pamata tagus, tā kā tie jau atrodas mūsu vietnes galvenajā izkārtojumā.
Izveidosim arī failu ar saturu lietotāja attēlošanai:
export default function User() {
return <>
<h1>User</h1>
<p>
user description
</p>
</>;
}
Pēc šīm manipulācijām mūsu failu struktūra izskatīsies šādi:
- /app/
- layout.jsx
- /users/
- layout.jsx
- /show/
- page.jsx
Tagad, piekļūstot atbilstošajam URL, NextJS visu saliks kopā un pārlūkprogrammā mēs iegūsim šādu galīgo HTML kodu:
<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>
Izveidojiet vietnē sadaļu ar lietotājiem un sadaļu ar ierakstiem. Katrā sadaļā izveidojiet savu izkārtojumu, kas manto no vietnes galvenā izkārtojuma.