Next.js är ett kraftfullt ramverk för att bygga högpresterande React-applikationer. En av dess funktioner är möjligheten att skapa anpassade layouter för dina sidor så att du kan skapa en konsekvent design som är lätt att underhålla och uppdatera i hela din applikation.
Skapa en anpassad layoutkomponent i nästa. JS
I mappen som heter komponenter i ditt Next.js-projekt, skapa Layout.jsx och lägg till följande kod för att skapa layoutkomponenten.
importera Huvud från'nästa/huvud'
importera Rubrik från'./Header.jsx'
importera Sidfot från'./Footer.jsx'
konst Layout = (barn) => (
Min app</title>
"stylesheet" href="/static/css/style.css" />
</Head>
{children}
</div>
)
exportera standard layout
< p>Denna komponent importerar sidhuvuds- och sidfotskomponenterna och accepterar underordnade som rekvisita. Det återger barnen mellan sidhuvud- och sidfotskomponenterna. När du avslutar en sida med den här layouten, kommer sidhuvudet och sidfoten att visas överst och längst ned.
Använda Layoutkomponent
För att använda layoutkomponenten, importera den till en sidkomponent och använd den som visas nedan.
importera Layout från '../components/Layout'
const Sida = () => (
Hem</h1>
</Layout>
)
export standard sida
Den kommer att tillämpa layout till denna sida. Du kan upprepa denna process på alla sidor som du vill använda layouten.
Om du vill använda layouten på alla sidor i applikationerna samtidigt, importera layoutkomponenten till /page/_app.js-filen och använd den enligt följande.
importera Layout från span> "../components/layout";
funktion MyApp({ Component, pageProps } span>) {
retur (
</Layout>
) ;
}
Exemplen som visats hittills använd mapparna Next.js 12 sidor. I Next.js 13 skapar du layouten i app-mappen (när du skriver är den i betaversion).
Skapa en anpassad layout i appmappen
appmappen i Next.js 13 kräver att du skapar en rotlayout i basen. Det här är layouten som Next.js kommer att tillämpa på alla sidor i din applikation.
För att demonstrera, skapa en fil med namnet layout.jsx och lägg till följande kod. p>
export standard funktion RootLayout({ barn } span>) {
retur (
"en">
{children}</body>
</html>< br/> );
}
Rotlayoutkomponenten accepterar och renderar barn. Nedan är några av de saker du bör veta om en rotlayout:
- Du måste inkludera den i appmappen.
- Den ersätter _app.js och _document.js i sidmappen i Next.js 12.
- Du måste uttryckligen inkludera HTML- och body-taggen.
- Det är en serverkomponent som standard.
Som nämnts gäller rotlayouten för alla sidor, så hur skapar du anpassade layouter för olika ruttsegment?
I din app-mapp kan du definiera en rutt genom att skapa mappar för varje rutt segmentet. Till exempel, skapa en mapp som heter artiklar mappar till URL-sökvägen app/artiklar. För att lägga till ytterligare ruttsegment, skapa en undermapp i huvudruttmappen. Att till exempel lägga till en mapp som heter trend i mappen artiklar mappas till URL-sökvägen app/artiklar/trending.
När du lägger till en layout.jsx-komponent i en ruttmapp kommer den att gälla för alla sidor inom den ruttsegment och dess undermappar. Om du till exempel lägger till en layoutkomponent i mappen artiklar kommer det att gälla alla sidor i artikelrutten, inklusive de i undermappen trending. Om du även lägger till en layoutkomponent i mappen trending kommer layouten i artikelmappen att kapslas in i den.
Fördelar med att använda layouter
Next.js låter dig skapa layoutkomponenter som du kan återanvända på olika sidor. Detta gör att du kan ha ett konsekvent utseende på din webbplats utan att duplicera kod över flera sidor. Dessutom hjälper layouter dig att implementera ändringar snabbt eftersom du inte behöver göra ändringar på varje sida.