Beágyazott elrendezések a NextJS-ben
Mint tudjátok, a /app mappában
a /layout.jsx fájlban
található a weboldal fő elrendezése.
Azonban, ha szükséges, a beágyazott mappákban is létrehozhatunk saját elrendezéseket. Ebben az esetben az oldal tartalma először a beágyazott elrendezésbe kerül beillesztésre, majd a kapott eredmény kerül beillesztésre a fő elrendezésbe.
Próbáljuk ki a gyakorlatban. Tegyük fel, hogy a fő elrendezésünk a következő alakú:
export default function RootLayout({children}) {
return (
<html lang="en">
<body>
<header>
header
</header>
<main>
{children}
</main>
<footer>
footer
</footer>
</body>
</html>
);
}
Készítsünk még egy,
beágyazott elrendezést a
/users mappában lévő összes
tartalomhoz:
export default function UsersLayout({children}) {
return (
<div className="info">
message for all users
</div>
<div className="content">
{children}
</div>
);
}
Amint látjátok, ebben az elrendezésben nem adjuk meg az alapvető oldalcímkéket, mivel ezek már megtalálhatók a weboldal fő elrendezésében.
Készítsük el a felhasználó megjelenítéséhez szükséges tartalmi fájlt is:
export default function User() {
return <>
<h1>User</h1>
<p>
user description
</p>
</>;
}
Ezen manipulációk után a fájlstruktúránk így fog kinézni:
- /app/
- layout.jsx
- /users/
- layout.jsx
- /show/
- page.jsx
Most, ha a megfelelő URL-re navigálunk, a NextJS mindezt összeállítja, és a böngészőben a következő végső HTML kódot kapjuk:
<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>
Készítsd el a weboldalon a felhasználók szekcióját és a bejegyzések szekcióját. Mindegyik szekcióhoz készíts saját elrendezést, amely a weboldal fő elrendezésétől örököl.