Udokumentowana architektura Next.js
Next.js jest zbudowany wokół Reacta i zapewnia warstwę frameworka do routingu, renderowania, dostępu do danych, serwerowych punktów końcowych, kompilacji i łączenia modułów. Opisuje to publiczny model programistyczny udokumentowany dla aplikacji; nie ujawnia prywatnej infrastruktury używanej do obsługi nextjs.org.
W App Router drzewo tras jest organizowane za pomocą plików przeznaczonych dla stron, układów, stanów ładowania, błędów i powiązanych zachowań. Układy i strony są domyślnie komponentami serwerowymi. Komponenty klienckie definiują poddrzewa wykonywane w przeglądarce na potrzeby stanu, procedur obsługi zdarzeń, efektów i interfejsów API dostępnych wyłącznie w przeglądarce.
Publiczne warstwy frameworka
| Warstwa | Udokumentowana odpowiedzialność |
|---|---|
| Komponenty Reacta | Komponują interfejs użytkownika i definiują drzewa komponentów serwerowych lub klienckich |
| App Router lub Pages Router | Odwzorowują strukturę aplikacji na trasy przy użyciu różnych modeli Next.js |
| System renderowania | Generuje dane wyjściowe renderowane wstępnie lub w momencie żądania i koordynuje strumieniowanie tam, gdzie ma ono zastosowanie |
| Buforowanie i ponowna walidacja | Kontrolują ponowne wykorzystanie i aktualność zgodnie z zachowaniem tras i danych |
| Route Handlers | Implementują punkty końcowe HTTP w aplikacji App Router |
| Narzędzia budowania | Kompilują i łączą kod aplikacji oraz zasoby dla wspieranych wdrożeń |
Trasa Next.js może zawierać treści renderowane na serwerze i ukierunkowane interakcje klienckie. Obecność komponentu klienckiego nie zmienia każdego jego przodka w aplikację renderowaną w przeglądarce, chociaż wybrana granica klienta wpływa na to, które moduły są dołączane dla przeglądarki.
Sposoby dostarczania
- Eksport statyczny generuje pliki dla projektów, które nie potrzebują nieobsługiwanych funkcji serwerowych.
- Renderowanie wstępne przygotowuje dane wyjściowe trasy przed indywidualnym żądaniem.
- Renderowanie dynamiczne generuje dane wyjściowe z użyciem informacji dostępnych w momencie żądania.
- Buforowanie i ponowna walidacja zarządzają ponownym wykorzystaniem i aktualnością między tymi skrajnościami.
- Zgodne środowisko uruchomieniowe jest wymagane dla zachowań działających w momencie żądania i innych zachowań zależnych od serwera.
Oficjalny przewodnik wdrażania dokumentuje samodzielny hosting i adaptery platform, dlatego Vercel nie jest technicznym wymogiem dla każdej aplikacji Next.js. Zakres funkcji może różnić się między środowiskami. Zespoły powinny sprawdzać routing, buforowanie, zachowanie obrazów, ponowną walidację, strumieniowanie i Route Handlers w odniesieniu do wybranego środowiska docelowego, zamiast wywnioskowywać zgodność na podstawie udanego procesu budowania.
