Stati di caricamento
Fa parte della sezione Nozioni essenziali di Next.js del percorso React di Coddy. Lezione 26 di 47.
Una pagina asincrona è veloce solo quanto il suo caricamento più lento. Mentre Next.js attende, l’utente sta guardando… cosa, esattamente?
Metti un loading.jsx accanto alla pagina e la risposta è: quello che vuoi.
app/
slow/
page.jsx the async page
loading.jsx shown while it resolvesÈ un componente ordinario con un'esportazione predefinita e non accetta props:
export default function Loading() {
return <p>Loading the special…</p>;
}Non la esegui mai direttamente e non la importi mai. Posizionando il file accanto alla pagina, questa viene racchiusa in un confine Suspense: Next.js mostra loading.jsx non appena navighi, visualizza la pagina reale quando gli await sono terminati e il layout circostante non sfarfalla mai.
Dal percorso del file derivano due cose:
- Copre la pagina accanto a sé e tutto ciò che è annidato al di sotto, finché un
loading.jsxpiù profondo non prende il suo posto - Viene sostituita solo la pagina: le intestazioni e la navigazione del layout restano al loro posto e rimangono cliccabili
Nota cosa non hai scritto: nessun flag di caricamento, nessuno stato, nessun if (loading). Il nome del file è il meccanismo.
Sfida
Facileapp/slow/page.jsx attende un caricamento lento e app/slow/loading.jsx esiste già, ma è vuoto.
- Al suo interno, aggiungi a
<main>un<p>conid="loading". - Il testo deve essere esattamente
Loading the special...
La pagina e lib/data.js sono bloccati. I test navigano a /slow e guardano lo schermo prima che arrivino i dati.
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