Due tipi di componenti
Fa parte della sezione Nozioni essenziali di Next.js del percorso React di Coddy. Lezione 17 di 47.
Ogni componente che hai scritto finora in questa sezione è stato eseguito in un punto che forse non hai notato: sul server. Non è una modalità speciale che hai attivato: è quella predefinita, ed è l’idea più importante di Next.js.
Esistono esattamente due tipi di componenti, e ciascuno ti offre qualcosa che l’altro non può offrirti.
Componenti server: l'impostazione predefinita
- Vengono eseguiti una sola volta, sul server, prima che la pagina venga inviata
- Possono essere
async, quindi possono usareawaitsui dati direttamente all'interno del componente - Non inviano JavaScript al browser: l'utente scarica il risultato, non il codice
Il problema: quando la pagina arriva al browser, un componente lato server è terminato. È un'istantanea. Non può ricordare nulla, reagire a un clic o cambiare.
Componenti client: attivazione esplicita
Quando hai bisogno che la pagina risponda, abiliti un file nel browser con una sola riga all’inizio:
'use client';Questo contrassegna il file come componente client, e solo i componenti client possono usare:
- Hook:
useState,useEffecte simili - Gestori di eventi:
onClick,onChange, … - API del browser:
window,localStorage
Nota il compromesso. Un componente server è veloce e silenzioso, ma statico. Un componente client è interattivo, ma il suo codice deve essere scaricato ed eseguito nel browser.
Quindi, d'ora in poi, la domanda da porsi per ogni componente non è "quale mi piace?", ma "questo componente specifico deve rispondere all'utente?" Se la risposta è no (e di solito lo è), lascialo sul server.
Provalo tu
Questa lezione non include una sfida di codice.
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