JavaScript: Next.js 8 zielt auf Serverless Computing

Das Framework für serverseitig gerenderte React-Anwendungen kann jede Seite als separate Funktion erstellen.

In Pocket speichern vorlesen Druckansicht 15 Kommentare lesen
JavaScript: Next.js 8 zielt auf Serverless Computing
Lesezeit: 3 Min.
Von
  • Rainald Menge-Sonnentag

Die Macher von Next.js haben Version 8 des Frameworks zum Erstellen serverseitiger Anwendungen mit React herausgegeben. Eine wichtige Neuerung ist der Serverless-Modus, mit dem Entwickler Anwendungen für Serverless Computing erstellen. Darüber hinaus gibt es vor allem zahlreiche Performance-Optimierungen sowohl beim Erstellen als auch beim Betrieb der Anwendungen.

Den Serverless-Modus aktivieren Entwickler, indem sie in der Konfiguration die Option target: "serverless" einfügen. Daraufhin erstellt Next.js für jede Seite eine eigene Funktion, die ohne externe Dependencies auskommt und autonom arbeitet. Die Funktionen sind auf einen möglichst schnellen Kaltstart optimiert. Das Framework bietet eine Low-Level-API zum Verteilen der Funktionen auf spezifische Plattformen. Zur Kommunikation mit der Außenwelt dienen die aus Node.js bekannten Objekte http.ServerResponse und http.IncomingMessage.

Next.js 8 erstellt optional aus den einzelnen Seiten autonom arbeitende Funktionen.

(Bild: Next.js)

Für die Optimierungen hat sich das Team unter anderem im Webpack-Projekt engagiert, um den Speicherbedarf beim Build von Next.js und anderen Projekten deutlich zu reduzieren, ohne die Performance zu verschlechtern. Nicht verwendeter Speicher wird wohl nun deutlich schneller freigegeben als zuvor.

Auch beim Prefetching, also dem vorzeitigen Laden von Seiten, gibt es Performanceverbesserungen. Dabei lädt das System alle Links, die ein prefetch-Attribut aufweisen. Next.js 8 ersetzt das bisher dafür benötigte <script>-Tag durch <link rel="preload">. Darüber hinaus erkennt Next.js wohl langsame (2G) Internetverbindungen und unterbindet dort das Prefetching.

Außerdem reduziert Next.js 8 die Größe der anfänglich übermittelten HTML-Seiten im Vergleich zum Vorgänger um etwa 23 Prozent. Eine Maßnahme ist, dass Next.js darauf verzichtet, bei jeder initialen Übertragung die '/_error'-Seite zu übermitteln, die zum Anzeigen von Laufzeitfehlern dient. Das aktuelle Release schickt die Seite erst dann an den Client, wenn tatsächlich Fehler auftreten.

Zu den Maßnahmen für eine verbesserte Sicherheit gehört, dass Next.js 8 auf Inline-<script>-Tags zum Übertragen von Daten zum Festlegen der Content Security Policy (CSP) verzichtet und stattdessen ein JSON-Tag verwendet. Damit entfällt die Notwendigkeit, in der CSP-Anweisung als Quelle script-src 'unsafe-inline' festzulegen.

Weitere Neuerungen wie der schnellere statische Export und das Deduplizieren von <head>-Elementen lassen sich dem NextJS-Blog entnehmen. Der Sourcecode ist unter MIT-Lizenz auf GitHub zu finden. Eine Kurzanleitung auf der Projektsite hilft bei den ersten Schritten mit Next.js. (rme)