Next.js is een krachtig raamwerk voor het bouwen van goed presterende React-applicaties. Een van de functies is de mogelijkheid om aangepaste lay-outs voor uw pagina's te maken, zodat u een consistent ontwerp kunt maken dat gemakkelijk te onderhouden en bij te werken is in uw hele applicatie.
Een aangepaste lay-outcomponent maken in Next. JS
In de map met de naam componenten in uw Next.js-project, create Lay-out.jsx en voeg de volgende code toe om de lay-outcomponent te maken.
importeren Hoofd van'volgende/hoofd'
importeren Koptekst van'./Header.jsx'
importeren Voettekst van'./Voettekst.jsx'
const Indeling = (kinderen) => (
Mijn app</title>
"stylesheet" href="/static/css/style.css" />
</Head>
{children}
</div>
)
exporteren standaard Lay-out
< p>Deze component importeert de kop- en voettekstcomponenten en accepteert kinderen als rekwisieten. Het geeft de
kinderen weer tussen de kop- en voettekstcomponenten. Wanneer u een pagina omwikkelt met deze lay-out, worden de koptekst en voettekst boven en onder weergegeven. Lay-outcomponent
Om de lay-outcomponent te gebruiken, importeert u deze in een paginacomponent en gebruikt u deze zoals hieronder weergegeven.
importeren Lay-out van '../components/Layout'
const Page = () => (
Startpagina</h1>
</Layout>
)
exporteren standaard pagina
Het zal de lay-out van deze pagina. U kunt dit proces herhalen op alle pagina's waarop u de lay-out wilt toepassen.
Als u de lay-out voor alle pagina's in de toepassingen tegelijk wilt gebruiken, importeert u de lay-outcomponent in het bestand /page/_app.js en gebruik het als volgt.
import lay-out uit span> "../components/layout";
function MyApp({ Component, pageProps } span>) {
return (
</Layout>
) ;
}
De tot nu toe getoonde voorbeelden gebruik de mappen Next.js 12 pagina's. In Next.js 13 maakt u de lay-out in de app-map (op het moment van schrijven is deze in bèta).
Een aangepaste lay-out maken in de app-map
De app-map in Next.js 13 vereist dat u een hoofdlay-out aan de basis maakt. Dit is de lay-out die Next.js zal toepassen op alle pagina's van uw applicatie.
Om te demonstreren, maakt u een bestand met de naam layout.jsx en voegt u de volgende code toe. p>
exporteren standaard functie RootLayout({ kinderen } span>) {
retour (
"nl">
{children}</body>
</html>< br/> );
}
De root-layoutcomponent accepteert en geeft de kinderen. Hieronder vindt u enkele dingen die u moet weten over een rootlay-out:
- U moet deze opnemen in de app-map.
- Het vervangt _app.js en _document.js in de paginamap van Next.js 12.
- U moet expliciet de HTML- en body-tag opnemen.
- Het is standaard een servercomponent.
Zoals gezegd is de hoofdlay-out van toepassing op alle pagina's, dus hoe maak je aangepaste lay-outs voor verschillende routesegmenten?
In je app-map kun je een route definiëren door voor elke route mappen te maken segment. Als u bijvoorbeeld een map met de naam articles maakt, wordt deze toegewezen aan het URL-pad app/articles. Om meer routesegmenten toe te voegen, maakt u een submap binnen de hoofdroutemap. Als u bijvoorbeeld een map met de naam trending toevoegt in de map articles, wordt deze toegewezen aan het URL-pad app/articles/trending.
Wanneer u een component layout.jsx toevoegt aan een routemap, is deze van toepassing op alle pagina's in die map routesegment en zijn submappen. Het toevoegen van een lay-outcomponent aan de map articles is bijvoorbeeld van toepassing op alle pagina's in de artikelenroute, inclusief die in de submap trending. Als u ook een lay-outcomponent toevoegt aan de map trending, wordt de lay-out in de map artikelen daarin genest.
Voordelen van het gebruik van lay-outs
Met Next.js kunt u lay-outcomponenten maken die u op verschillende Pagina's. Hierdoor kunt u uw website consistent bekijken zonder code over meerdere pagina's te dupliceren. Bovendien helpen lay-outs u om wijzigingen snel door te voeren, omdat u niet op elke pagina wijzigingen hoeft aan te brengen.