De gedocumenteerde Next.js-architectuur
Next.js is rond React gebouwd en biedt een frameworklaag voor routing, rendering, gegevenstoegang, servereindpunten, compilatie en bundeling. Dit beschrijft het openbare programmeermodel dat voor applicaties is gedocumenteerd; het onthult geen privé-infrastructuur die wordt gebruikt om nextjs.org te beheren.
In de App Router wordt de routestructuur georganiseerd via bestanden voor pagina's, layouts, laadstatussen, fouten en aanverwant gedrag. Layouts en pagina's zijn standaard Server Components. Client Components definiëren in de browser uitgevoerde substructuren voor state, eventhandlers, effecten en uitsluitend in de browser beschikbare API's.
Openbare frameworklagen
| Laag | Gedocumenteerde verantwoordelijkheid |
|---|---|
| React-componenten | De gebruikersinterface samenstellen en server- of clientcomponentstructuren definiëren |
| App Router of Pages Router | De applicatiestructuur met verschillende Next.js-modellen aan routes koppelen |
| Renderingsysteem | Vooraf gerenderde uitvoer of uitvoer tijdens een verzoek produceren en streaming coördineren waar van toepassing |
| Caching en revalidatie | Hergebruik en actualiteit beheren volgens het gedrag van routes en gegevens |
| Route Handlers | HTTP-eindpunten binnen een App Router-applicatie implementeren |
| Buildhulpmiddelen | Applicatiecode en assets compileren en bundelen voor ondersteunde implementaties |
Een Next.js-route kan door de server gerenderde content en gerichte clientinteractie bevatten. De aanwezigheid van een Client Component maakt niet van elke voorouder een in de browser gerenderde applicatie, hoewel de gekozen clientgrens beïnvloedt welke modules voor de browser worden opgenomen.
Leveringskeuzes
- Statische export produceert bestanden voor projecten die geen niet-ondersteunde serverfuncties nodig hebben.
- Vooraf renderen bereidt route-uitvoer vóór een individueel verzoek voor.
- Dynamische rendering produceert uitvoer met informatie die tijdens het verzoek beschikbaar is.
- Caching en revalidatie beheren hergebruik en actualiteit tussen die uitersten.
- Een compatibele runtime is vereist voor gedrag tijdens verzoeken en ander serverafhankelijk gedrag.
De officiële implementatiehandleiding documenteert zelfhosting en platformadapters, waardoor Vercel geen technische vereiste is voor elke Next.js-applicatie. De dekking van functies kan per omgeving verschillen. Teams moeten routing, caching, afbeeldingsgedrag, revalidatie, streaming en Route Handlers aan de hand van hun geselecteerde doelomgeving verifiëren in plaats van compatibiliteit uit een geslaagde build af te leiden.
