Next.js er et kraftig rammeverk for å bygge høyytende React-applikasjoner. En av funksjonene er muligheten til å lage tilpassede oppsett for sidene dine, slik at du kan lage et konsistent design som er enkelt å vedlikeholde og oppdatere på tvers av applikasjonen.
Opprette en egendefinert layoutkomponent i Next. JS
I mappen som heter komponenter i Next.js-prosjektet, opprette Layout.jsx og legg til følgende kode for å lage layoutkomponenten.
import Hode fra'neste/hode'
import Overskrift fra'./Header.jsx'
import Bunntekst fra'./Footer.jsx'
konst Layout = (barn) => (
Min app</title>
"stylesheet" href="/static/css/style.css" />
</Head>
{children}
</div>
)
eksport standard layout
< p>Denne komponenten importerer topptekst- og bunntekstkomponentene og godtar underordnede som rekvisitter. Den gjengir barnene mellom topptekst- og bunntekstkomponentene. Når du bryter en side med denne layouten, vil topptekst og bunntekst vises øverst og nederst.
Ved å bruke Layout-komponent
For å bruke layout-komponenten, importer den til en sidekomponent og bruk den som vist nedenfor.
import Layout fra '../components/Layout'
const Side = () => (
Hjem</h1>
</Layout>
)
eksport standard-side
Den vil bruke layout til denne siden. Du kan gjenta denne prosessen på alle sidene du vil bruke layouten.
For å bruke layouten på tvers av alle sidene i applikasjonene samtidig, importerer du layoutkomponenten til /page/_app.js-filen og bruk den som følger.
importer Layout fra span> "../components/layout";
funksjon MyApp({ Component, pageProps } span>) {
retur (
</Layout>
) ;
}
Eksemplene som er vist så langt bruk mappene Next.js 12 sider. I Next.js 13 lager du oppsettet i app-mappen (i skrivende stund er den i beta).
Opprette et tilpasset oppsett i appmappen
appmappen i Next.js 13 krever at du oppretter et rotoppsett i basen. Dette er oppsettet som Next.js vil bruke på alle sidene i applikasjonen din.
For å demonstrere, lag en fil med navnet layout.jsx og legg til følgende kode. p>
eksport standard funksjon RootLayout({ barn } span>) {
retur (
"no">
{children}</body>
</html>< br/> );
}
Rotlayoutkomponenten godtar og gjengir barn. Nedenfor er noen av tingene du bør vite om et rotoppsett:
- Du må inkludere det i app-mappen.
- Den erstatter _app.js og _document.js i sidemappen til Next.js 12.
- Du må eksplisitt inkludere HTML- og body-taggen.
- Det er en serverkomponent som standard.
Som nevnt gjelder rotoppsettet for alle sider, så hvordan lager du tilpassede oppsett for forskjellige rutesegmenter?
I appmappen din kan du definere en rute ved å opprette mapper for hver rute segmentet. Hvis du for eksempel oppretter en mappe kalt artikler, tilordnes URL-banen appen/artikler. For å legge til flere rutesegmenter, opprette en undermappe i hovedrutemappen. Hvis du for eksempel legger til en mappe kalt trending i mappen artiklene, tilordnes URL-banen app/articles/trending.
Når du legger til en layout.jsx-komponent i en rutemappe, vil den gjelde for alle sidene innenfor den rutesegmentet og dets undermapper. Hvis du for eksempel legger til en layoutkomponent i mappen artikler, vil det gjelde alle sidene i artikkelruten, inkludert de i undermappen trending. Hvis du også legger til en layoutkomponent i trending-mappen, vil layouten i artikkelmappen bli nestet i den.
Fordeler ved å bruke layouter
Next.js lar deg lage layoutkomponenter som du kan gjenbruke på tvers av forskjellige sider. Dette lar deg ha et konsistent utseende på nettstedet ditt uten å duplisere kode på flere sider. I tillegg hjelper layouter deg med å implementere endringer raskt fordi du ikke trenger å gjøre endringer på hver side.