iX 8/2024
S. 66
Review
Softwareentwicklung

Angular 18: Abschied von zone.js auf Raten

Die aktuelle Angular-Hauptversion führt die experimentelle Change Detection ohne die Bibliothek zone.js ein. Das neue Vorgehen ermöglicht deutlich performantere Anwendungen.

Von Rainer Hahnekamp

Das Webframework Angular führt in der Version 18 als bedeutendste Neuerung das zoneless-Feature ein. Zoneless bedeutet, dass sich Angular von der bisherigen Art und Weise verabschiedet, das DOM (Document Object Model) zu aktualisieren, und einen neuen Mechanismus einbaut. Derartige interne Umwälzungen haben eine enorme Auswirkung, weshalb zoneless zunächst als experimentell eingestuft ist.

zoneless-Feature in Angular 18

Jedes Frontend-Framework braucht einen Mechanismus, um den Status der Anwendung im Browser zu aktualisieren – umgangssprachlich Rendern genannt. React hat das Virtual DOM, Angular verwendet die Change Detection. Damit die Change Detection startet, benötigt sie einen Auslöser. Vor Angular 18 gab es zwei mögliche Auslösekriterien: ein DOM-Event, das einen Event Listener benötigt, und die Beendigung eines asynchronen Tasks. Die Bibliothek zone.js überwacht die beiden Ereignistypen und löst dabei immer die Change Detection aus. Sie läuft asynchron und aktualisiert das DOM. Dafür muss zone.js große Teile der Web-API des Browsers patchen, die über JavaScript verfügbar sind. Obwohl zone.js eine eigenständige Bibliothek ist, ist sie fundamental für Angular und kommt deswegen von Beginn an zum Einsatz.

Kommentieren