Nahaufnahme Code
Dennis, Kiya | 08.02.2024

Einführung in Angular 17 SSR

Webentwicklung > Einführung in Angular 17 SSR

Was ist Angular 17 SSR?

Das serverseitige Rendering (SSR) in Angular 17 ermöglicht das Rendering einer Angular-Anwendung auf dem Server, wodurch sie zunächst schneller angezeigt werden kann. Im Gegensatz zu herkömmlichen Single-Page Applications (SPAs), die vollständig im Browser gerendert werden, generiert SSR den HTML-Inhalt vom Server und sendet ihn an den Client. Dies beschleunigt die Ladezeiten der ersten Seite und bietet Vorteile für die Search Engine Optimization (SEO) und das Teilen von Links in sozialen Medien.

Wie bindet man Angular SSR in ein Projekt ein?

Um Angular SSR in ein neues Projekt zu integrieren, kann man den Befehl ng new --ssr verwenden. Bei bestehenden Projekten kann SSR mit dem Befehl ng add @angular/ssr hinzugefügt werden. Alternativ bietet Angular 17 die Möglichkeit, Anwendungen mit dem Befehl ng build --prerender vorzuberechnen, wodurch die Notwendigkeit des Node.js-Hostings entfällt und statische, vorberechnete HTML-Dateien verwendet werden können.

Konfiguration und Struktur von Angular SSR

Durch das Hinzufügen von Angular Universal mit dem Befehl ng add @nguniversal/express-engine wird eine neue Ordnerstruktur im Projekt erstellt. Zu den wichtigen hinzugefügten Dateien gehören main.server.ts für den Server-App-Bootstrapper, app.server.module.ts für das serverseitige Anwendungsmodul und server.ts für den Express-Webserver. Die package.json konfiguriert z. B. spezifische Skripte für SSR:

1{
2  "start": "ng run APP_NAME:serve-ssr",
3  "build": "ng build && ng run APP_NAME:server",
4  "serve": "node dist/APP_NAME/server/main.js"
5}

APP_NAME steht hier für den Namen der Anwendung. Diese Konfiguration ermöglicht die Verwendung von SSR sowohl in der Entwicklung als auch in der Produktion und hilft, SSR-spezifische Fehler während der Entwicklung zu erkennen.

Warum ist Client-Hydrierung wichtig?

Ein wesentlicher Aspekt von Angular 17 SSR ist das Konzept der Client-Hydrierung. Bei diesem Prozess übernimmt Angular das vom Server gerenderte DOM und aktualisiert es bei Bedarf mit aktuellen Daten. Dieser Prozess der Hydrierung überträgt Markup und Daten vom Server zum Client, ohne dass das gesamte DOM im Browser neu aufgebaut werden muss. Dies führt zu einer effizienteren Nutzung der vom Server vorgeladenen Inhalte und verbessert die Gesamtleistung der Anwendung.

Wie gehe ich mit der localStorage-API um?

Es ist wichtig zu beachten, dass der Angular-Code jetzt auf dem Server ausgeführt wird und die Verwendung der localStorage-API unter anderem zu Fehlern führen kann. Um dies zu umgehen, kann man entweder eine Bedingung integrieren, um die Plattform zu überprüfen oder einfacher, den afterNextRender-Lifecycle-Hook verwenden. Da der erste Render-Hook auf dem Server stattfindet, wird alles im afterNextRender-Hook auf dem Client ausgeführt.

Fazit

Angular 17 bringt mit seinem verbesserten SSR-Ansatz erhebliche Vorteile in Bezug auf Leistung und Suchmaschinenoptimierung. Durch die einfache Integration und Konfiguration von SSR in neue und bestehende Projekte sowie die fortschrittlichen Funktionen wie Client-Hydrierung und Pre-Rendering bietet Angular 17 Entwicklern leistungsstarke Tools für die Erstellung von Hochleistungs-Webanwendungen.

Inhalt
  • Was ist Angular 17 SSR?
  • Wie bindet man Angular SSR in ein Projekt ein?
  • Wie ist die Konfiguration und Struktur von Angular SSR?
  • Warum ist Client-Hydrierung wichtig?
  • Wie behandelt man localStorage API in Angular SSR?
Dennis Hundertmark
Dennis (Softwareentwickler)

Als Frontend-Experte und Angular-Enthusiast gestalte ich Webanwendungen, die Technik und Design gekonnt zusammenführen. Meine Stärke liegt in der Entwicklung benutzerzentrierter Lösungen, die sowohl f... mehr anzeigen

Gitlab
Gesicht von Kiya,- unsere KI Mitarbeiterin
Kiya

... ist unsere engagierte und leidenschaftliche Künstliche Intelligenz und Expertin für Softwareentwicklung. Mit einem unermüdlichen Interesse für technologische Innovationen bringt sie Enthusiasmus u... mehr anzeigen

More about this topic

More from Dennis

Unsere Entwicklungsexpertise

Standort Hannover

newcubator GmbH
Bödekerstraße 22
30161 Hannover

Standort Dortmund

newcubator GmbH
Westenhellweg 85-89
44137 Dortmund