
Next.js 14
Została wydana 14. wersja popularnego frameworka Nextjs, opartego o React. Aktualizacja oferuje szereg nowych funkcji i ulepszeń, które mają na celu zwiększenie wydajności, ułatwienie pracy deweloperom i dostarczenie płynniejszych doświadczeń użytkownikom. Ten artykuł zawiera szczegółowy przegląd najważniejszych informacji o nowej wersji.
CEO
31 paź 2023
Turbopack
Bundler Webpack ma zostać zastąpiony Turbopackiem - jest to opcjonalny feature dla developerów, który aktywuje się, dodając odpowiednią flagę do komendy uruchamiającej serwer developerski:
next dev --turbo
Turbopack jest oparty na języku Rust, dzięki czemu serwer uruchamia się o połowę szybciej, a aktualizacje zachodzą nawet do 20 razy szybciej. Funkcjonalność jest wstecznie kompatybilna, jednak pozostaje w fazie testów (90% pokrycia na moment pisania artykułu).
Powiązane case studies



Platforma edukacyjna generująca materiały do nauki programowania z ChatGPT
Klient: Klient (Aplikacja webowa do nauki programowania)
Branża: Edukacja / EdTech
Server Actions
Server actions zostały ustabilizowane, dzięki czemu możemy dokonywać aktualizacji danych w bazie danych i na stronie za jednym zamachem - Server Actions są zintegrowane z mechanizmem rewalidacji. Prosty przykład użycia to funkcja mutująca dane, na przykład TODO listy:
async function createToDoListItem(itemName: string) {
'use server';
response = await fetch(...);
// ...
}
Dyrektywa 'use server' wskazuje, że deklarowana funkcja jest Server Action. Taka funkcja jest uniwersalna i może być użyta w każdym miejscu.
Partial prerendering
Partial prerendering to feature będący w fazie preview, oparty o React Suspense Boundary. W dużym skrócie, serwer zwraca odpowiedź statyczną, zawierającą Suspense Boundaries i doładowuje elementy generowane po stronie serwera na bieżąco. Jeśli feature wypali i wyjdzie z fazy preview, to będzie to przełom, gdyż pozbędziemy się w ten sposób opóźnienia między zapytaniem a odpowiedzią, będącego jedną z wad SSR.
Metadane
Zostały rozdzielone metadane blokujące i nieblokujące, co znacznie wygładza doświadczenie użytkownika i zapobiega takim zachowaniom jak np. migotanie strony w czasie ładowania. Metadane powiązane z viewportem zostały wyseparowane z reszty metadanych i są ładowane osobno.
Pomaga to zapobiec zbyt dużemu Cumulative Layout Shift, co pozytywnie wpływa na indeksowanie się strony w przeglądarkach.
Inne usprawnienia i zmiany
- Minimalna wymagana wersja Node.js to od teraz 18.17.0, przy czym zalecane jest użycie 18.17.1 ze względu na poprawki dotyczące bezpieczeństwa.
- Poprawki dotyczące użycia pamięci w środowisku developerskim - wcześniej pojawiały się zgłoszenia na temat wycieków pamięci i procesów-zombie pozostających po wyłączeniu/restarcie serwera developerskiego.
Aby uzyskać więcej informacji na temat migracji ze starszych wersji Next.js, należy zapoznać się z tym poradnikiem:
https://nextjs.org/docs/pages/building-your-application/upgrading/version-14
Źródło: https://nextjs.org/blog/next-14
FAQ
Najczęstsze pytania
- Czternasta wersja frameworka Next.js oferuje szereg nowych funkcji i ulepszeń zwiększających wydajność i ułatwiających pracę deweloperom — m.in. opcjonalny Turbopack Bundler, ustabilizowane Server Actions, Partial Prerendering w fazie preview oraz rozdzielenie metadanych blokujących i nieblokujących.
- Turbopack to następca Webpacka napisany w języku Rust. W czternastej wersji był jeszcze opcjonalny — włączało się go flagą turbo przy uruchamianiu serwera deweloperskiego — i obejmował część testów zgodności, dlatego twórcy odradzali poleganie na nim w krytycznych projektach. Zysk był jednak wyraźny: szybszy start serwera i znacznie szybsze odświeżanie zmian w przeglądarce. W kolejnych wydaniach Next.js Turbopack dojrzał, objął także budowanie produkcyjne i stał się domyślnym narzędziem — jeśli zaczynasz nowy projekt dziś, nie musisz włączać go ręcznie.
- Server Actions zostały ustabilizowane — pozwalają dokonywać aktualizacji danych w bazie danych i na stronie za jednym zamachem, ponieważ są zintegrowane z mechanizmem rewalidacji. Dyrektywa „use server" wskazuje, że deklarowana funkcja jest Server Action — taka funkcja jest uniwersalna i może być użyta w każdym miejscu.
- To technika łącząca zalety generowania statycznego i renderowania na serwerze, oparta na mechanizmie Suspense z Reacta. Serwer natychmiast odsyła gotową, statyczną powłokę strony, a fragmenty zależne od danych użytkownika doładowują się strumieniowo w wyznaczonych miejscach. Dzięki temu znika główna wada pełnego renderowania na serwerze — oczekiwanie na kompletną odpowiedź, zanim cokolwiek pojawi się na ekranie. W Next.js 14 funkcja była dostępna w wersji zapoznawczej i wymagała włączenia w konfiguracji; jej status zmieniał się w kolejnych wydaniach, więc przed użyciem sprawdź dokumentację swojej wersji.
- Rozdzielono metadane blokujące i nieblokujące, co zapobiega migotaniu strony w czasie ładowania i zbyt dużemu Cumulative Layout Shift, pozytywnie wpływając na indeksowanie strony. Minimalna wymagana wersja Node.js to 18.17.0 (zalecana 18.17.1 ze względu na poprawki bezpieczeństwa), poprawiono też użycie pamięci w środowisku developerskim, eliminując wycieki pamięci i procesy-zombie.
Blog
Powiązane artykuły
Przegląd Vite.js: Nowa generacja narzędzi do budowania aplikacji front-end
Większość developerów front-end jest zaznajomiona z narzędziami takimi jak webpack czy parcel. Jednak świeży powiew przynosi Vite.js; nowoczesne, szybkie i efektywne środowisko do budowania aplikacji. W tym artykule przyjrzymy się bliżej możliwościom i zaletom tej najnowszej technologii.
Jak uczyć się Reacta?
React to popularna biblioteka JavaScript do tworzenia interaktywnych interfejsów użytkownika. W tym artykule przedstawimy kilka sposobów, jak można nauczyć się Reacta i zacząć tworzyć swoje własne projekty.
Hygraph – nowoczesny headless CMS
Systemy Zarządzania Treścią, czyli CMS, wpływają na rozwój stron internetowych od lat. Hygraph, w ramach nowoczesnej technologii headless, oferuje nową perspektywę na zarządzanie treścią. Omówimy, jak Hygraph może kształtować przyszłość CMSów.
Centra - headless e-commerce dla marek premium i globalnych
Centra to szwedzka platforma headless e-commerce dla marek modowych i lifestyle'owych, które sprzedają na wielu rynkach i jednocześnie prowadzą hurt. Na przykładzie marki, która przerosła swój sklep, pokazujemy, co Centra załatwia, czego nie zrobi za firmę i kiedy lepiej wybrać Shopify Plus lub platformę open source.
Lynx - nowa alternatywa dla React Native?
Lynx to otwartoźródłowy framework od ByteDance, na którym działają fragmenty TikToka. Wyjaśniamy, czym różni się od React Native, dlaczego jest silnikiem do osadzania, a nie gotowym zestawem do budowy aplikacji, i w jakich trzech sytuacjach ma sens, a w jakich nie.
Wirtualny spacer 3D dla dewelopera - nowoczesny sposób prezentacji inwestycji
Klient chce wejść do mieszkania, którego jeszcze nie ma. Pokazujemy, co kryje się pod hasłem wirtualnego spaceru 3D, jak połączyć go ze stroną inwestycji i CRM oraz kiedy lepiej wydać te pieniądze inaczej.




