Layout nidificati
Fa parte della sezione Nozioni essenziali di Next.js del percorso React di Coddy. Lezione 13 di 47.
Il layout radice non è l’unico. Inserisci un layout.jsx in qualsiasi cartella: avvolgerà le route di quella cartella, e solo quelle.
app/
layout.jsx wraps EVERYTHING
page.jsx /
menu/
layout.jsx wraps /menu and everything under it
page.jsx /menu
pizza/
page.jsx /menu/pizzaVisita /menu/pizza e Next.js li annida dall’esterno verso l’interno:
RootLayout
MenuLayout
PizzaPageVisita / e viene eseguito solo il layout radice: il layout del menu non si trova nel percorso di quell'URL, quindi non viene mai visualizzato.
Un layout nidificato si scrive esattamente come quello radice, ma senza lo scheletro: niente <html>, niente <body>. Solo un componente che riceve children.
Ecco come una sezione di un sito ottiene la propria barra laterale, le proprie schede e la propria intestazione, senza una singola istruzione if relativa all'URL corrente.
Sfida
FacileLa sezione del menu ha bisogno di una propria intestazione: su /menu e sulle sue pagine dei piatti, ma in nessun altro luogo.
app/menu/layout.jsx esiste già e passa direttamente children. All'interno del suo <section>, sopra {children}, aggiungi:
- Un
<h2>conid="menu-header"e il testoMenu
I test verificano che l'intestazione sia visualizzata su /menu e su /menu/pizza, e che sia scomparsa tornando su /.
Provalo tu
import './globals.css';
export const metadata = {
title: 'My App',
};
export default function RootLayout({ children }) {
return (
<html lang="en">
<body>
{children}
</body>
</html>
);
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Nozioni essenziali di Next.js
4Server e Client
Due tipi di componentiLeggere l'erroreLa riga 'use client'Mantieni piccole le parti ClientServer dentro ClientRiepilogo: Server e Client7Navigazione lato client
Il link attivoRouting programmaticoFiltrare con l'URLGestori delle routeRiepilogo: navigazione2Routing e collegamenti
Le cartelle sono routeRoute annidateCollegare le pagineRoute dinamichePagine non trovateRiepilogo: routing5Dati sul server
Componenti asincroniIn attesa dei parametri della routeDue fetch contemporaneiStati di caricamentoGestione degli erroriRiepilogo: recupero dei dati8Progetto: Coddy Eats
Passaggio 1: La struttura