11 Punkte von ragingwind 2024-10-22 | 5 Kommentare | Auf WhatsApp teilen

Die finale Version von Next.js 15 wurde passend zur Konferenz 2024 veröffentlicht. Die unten aufgeführten Punkte enthalten nicht die Änderungen, die bereits in Next.js 15 RC 2 beschrieben wurden. Wenn du die Änderungen kennen möchtest, lies das bitte zuerst.

  • Caching-Semantik (Breaking): Für die folgenden Verhaltensweisen ist Caching nicht länger der Standard. Der Grund für die Änderung ist, dass es bei der Interaktion mit Partial Prerendering(PPR) oder Third-Party-Bibliotheken zu Problemen kommen kann; daher wurde das Standard-Caching-Modell überdacht. Zuvor war force-cache der Standardwert, jetzt wurde dies auf no-store geändert, sodass standardmäßig nicht gecacht wird und dadurch besser vorhersehbare Performance und Daten bereitgestellt werden.

    • fetch-Anfragen werden jetzt standardmäßig nicht gecacht, no-store ist der Default. Falls nötig, kann Caching mit der Option force-cache aktiviert werden.
    • Auch GET Route Handlers werden standardmäßig nicht gecacht. Über die Option force-static kann Caching verwendet werden.
    • Der Client Router Cache spiegelt beim Seitenwechsel aktuelle Daten wider und wird standardmäßig nicht gecacht. Um zum früheren Verhalten zurückzukehren, kann die Option staleTimes gesetzt werden.
  • React-19-Support: Next.js 15 wurde für React 19 aktualisiert und bleibt im Pages Router auch mit React 18 kompatibel. Der App Router verwendet React 19 RC, und auf Basis des Community-Feedbacks wurde es so gestaltet, dass Projekte mit React 18 ebenfalls auf React 19 aktualisiert werden können. Außerdem wurde der React Compiler eingeführt, der automatische Optimierung ermöglicht und den Bedarf an manueller Memoisierung reduziert. Diese Änderungen dienen der Vorbereitung auf das künftige finale Release von React 19.

    • React Compiler (experimentell): Der React Compiler ist ein experimenteller Compiler, der vom React-Team bei Meta entwickelt wurde. Er versteht die Semantik von JavaScript und die Regeln von React und optimiert Code automatisch. Dadurch müssen Entwickler Memoisierung seltener manuell über APIs wie useMemo und useCallback vornehmen. Er wird in Next.js 15 unterstützt und ist derzeit nur als Babel-Plugin verfügbar; die Build-Zeit kann sich dadurch verlängern.
    • Verbesserungen bei Hydration-Fehlern: Next.js 15 entwickelt die in früheren Versionen verbesserten Fehlermeldungen und den Umgang mit Hydration-Fehlern weiter. Tritt jetzt ein Hydration-Fehler auf, werden der Quellcode der Fehlerstelle sowie Vorschläge zur Behebung angezeigt. Das hilft Entwicklern, Fehler leichter zu verstehen und zu korrigieren.
  • Turbopack Dev: Turbopack ist jetzt stabil, und die hohe Geschwindigkeit verbessert die Developer Experience. Der Start des lokalen Servers wurde um etwa 76 % verbessert, Fast Refresh um 96 % und die erste Route-Kompilierung ohne Cache um etwa 45 %.

  • unstable_after API (experimentell): unstable_after ist eine experimentelle API, die in Next.js 15 eingeführt wurde und es ermöglicht, nach der Benutzerantwort nachgelagerte Aufgaben wie Logging oder Analytics auszuführen. Da serverlose Funktionen ihre Ausführung sofort beenden, sobald die Antwort abgeschlossen ist, kann dieses Problem mit after() gelöst werden, indem Aufgaben auch nach Abschluss der Antwort verzögert ausgeführt werden. So lassen sich Ladevorgänge, Statistikdaten usw. mit externen Systemen synchronisieren.

5 Kommentare

 
vipeen 2024-10-23

Für neue Projekte setze ich entweder auf Vue 3 oder auf SvelteKit.

 
zillionstar 2024-10-22

Die von Next 15 unterstützte React-Version beginnt erst ab 19 … aber React 19 hat den RC-Status offenbar noch nicht abgelegt.

 
kbumsik 2024-10-23

Wie jemand anderes bereits erwähnt hat, gibt es wegen Änderungen an den Funktionen noch einige Probleme, daher ist es zwar noch ein RC, aber abgesehen davon kann man es wohl als stabil ansehen.

 
[Dieser Kommentar wurde ausgeblendet.]
 
ragingwind 2024-10-22

Ein Frage-und-Antwort-Tweet eines Maintainers zu https://x.com/timneutkens/status/1848464958830612729