L'architettura documentata di Next.js
Next.js è costruito attorno a React e fornisce un livello framework per routing, rendering, accesso ai dati, endpoint server, compilazione e bundling. Ciò descrive il modello di programmazione pubblico documentato per le applicazioni; non rivela l'infrastruttura privata utilizzata per gestire nextjs.org.
Nell'App Router, l'albero delle route è organizzato tramite file per pagine, layout, stati di caricamento, errori e comportamenti correlati. Per impostazione predefinita, layout e pagine sono Server Components. I Client Components definiscono sottoalberi eseguiti nel browser per stato, gestori di eventi, effetti e API disponibili soltanto nel browser.
Livelli pubblici del framework
| Livello | Responsabilità documentata |
|---|---|
| Componenti React | Compongono l'interfaccia utente e definiscono alberi di componenti server o client |
| App Router o Pages Router | Associano la struttura dell'applicazione alle route utilizzando modelli Next.js differenti |
| Sistema di rendering | Produce output prerenderizzato o al momento della richiesta e coordina lo streaming ove applicabile |
| Cache e riconvalida | Controllano il riutilizzo e l'aggiornamento in base al comportamento delle route e dei dati |
| Route Handlers | Implementano endpoint HTTP all'interno di un'applicazione App Router |
| Strumenti di build | Compilano e raggruppano il codice e le risorse dell'applicazione per le distribuzioni supportate |
Una route Next.js può includere contenuti renderizzati sul server e interazioni client mirate. La presenza di un Client Component non trasforma ogni antenato in un'applicazione renderizzata nel browser, sebbene il confine client scelto influisca sui moduli inclusi per il browser.
Scelte di distribuzione
- L'esportazione statica produce file per i progetti che non necessitano di funzionalità server non supportate.
- Il prerendering prepara l'output della route prima di una singola richiesta.
- Il rendering dinamico produce l'output utilizzando informazioni disponibili al momento della richiesta.
- La cache e la riconvalida gestiscono il riutilizzo e l'aggiornamento tra questi estremi.
- Per i comportamenti al momento della richiesta e gli altri comportamenti dipendenti dal server è necessario un runtime compatibile.
La guida ufficiale alla distribuzione documenta il self-hosting e gli adattatori per le piattaforme, quindi Vercel non è un requisito tecnico per ogni applicazione Next.js. La copertura delle funzionalità può variare tra gli ambienti. I team dovrebbero verificare routing, cache, comportamento delle immagini, riconvalida, streaming e Route Handlers rispetto alla destinazione scelta, anziché dedurre la compatibilità da una build riuscita.
