Hinweis: Dieser Blogbeitrag stammt aus der Zeit vor dem Zusammenschluss und wurde von ARS realisiert – heute Teil von ATVANTAGE. Unsere Erfahrung bleibt – nur unser Name hat sich geändert. Hier finden Sie weitere Informationen rund um die Fusion.

Lesezeit: 3 Minuten

 

   Hurra, hurra - Angular Version 17 ist da!  

Mit dem neuen Release Cycle von Angular können wir uns alle sechs Monate auf eine neue Version von Angular freuen. Und diese Woche ist es wieder so weit: Angular Version 17 wird veröffentlicht!

In den letzten sechs Monaten hat das Angular Team fleißig an neuen Features und Verbesserungen gearbeitet, um Entwickler:innen das Leben einfacher zu machen und das Framework noch robuster und schneller.

Hier die Highlights im Überblick:

  • Neue deklarative Control Flow Syntax
  • Deferred Loading
  • Signals sind Production ready
  • Typescript 5.2
    • Schnelleres Rekursives Type Checking
    • Immutable Array Methoden 
    • Using Keyword
  • NodeJS > 18.13.0
  • Automatisches Entfernen von CSS
  • Fehlernachrichten in der Konsole, wenn lazy geladene Bilder das Rendering verlangsamen
  • Support für die Transitions API
  • Verbesserungen für SSR & ApplicationBuilder
     

Neue deklarative Control Flow Syntax

Diese ist die größte visuelle Änderung der Template Syntax, die es seit dem ersten Release von Angular gab. Wie der Name schon vermuten lässt, betrifft das Update die bisherige Direktiven-basierte Syntax: (*ngFor, *ngIf & ngSwitch). Die alte Syntax wurde durch die neue "@" Syntax ersetzt: (@for, @if & @switch).

Das Update bringt nicht nur eine neue Schreibweise mit sich, sondern auch neue Features:

 

Dank der neuen Syntax kann man nun auf ng-container und ng-template verzichten und dadurch den Code reduzieren. Es gibt bereits eine integrierte Track-Funktion, sodass man keine eigene mehr schreiben muss. Der @empty Block wird automatisch verwendet, falls keine Daten vorhanden sind.

Ein "Real World"-Vergleich der alten (links) & neuen Syntax (rechts):

   

Im obigen Beispiel verwenden wir wie bisher ng-template und ng-container sowie zwei Nullprüfungen (das erste Mal für das Observable und das zweite Mal, falls die Liste leer ist).

Dank der neuen Syntax (unten) entfällt die Notwendigkeit einer Nullprüfung für die Liste (dies übernimmt der @empty-Block) und wir können zusätzlichen Boilerplate-Code im Template vermeiden. Zusätzlich wird im @for-Block die Verwendung der track-Funktion vorgegeben, was positive Auswirkungen auf die Performance hat.

Deferred Loading

Eine weitere spannende Neuerung, die sich auf das Template auswirkt, ist das Deferred Loading. Frühere Versionen von Angular haben bereits die Möglichkeit geboten, Teile der App nachträglich zu laden und nicht alles auf einmal beim initialen Aufrufen der Seite. Allerdings konnte dies bisher nur über das Routing umgesetzt werden. Mit dem neuesten Update von Angular gibt es jetzt den neuen @defer-Block, der es ermöglicht, Teile des Templates erst dann nachzuladen, wenn sie benötigt werden. Auch sämtliche Abhängigkeiten des Code-Blocks, der lazy geladen wird, wie Direktiven, Komponenten oder Pipes, werden ebenfalls im lazy-Modus geladen.

In den folgenden Beispielen zeigen wir die Eigenschaften und Möglichkeiten des @defer-Blocks:

Eigene Logik

Im ersten Beispiel verwenden wir eigene Logik, um die Komponente "app-defered" lazy zu laden. Die Komponente im @defer-Block wird erst geladen, wenn die checkbox angeklickt wurde. Neben dem l@defer-Block gibt es noch drei weitere: 

  • @placeholder:  wird Initial geladen, vor dem @defer-Block
  • @error: falls beim Laden des @defer-Blocks Fehler aufkommen, wird dieser dann angezeigt
  • @loading: wird temporär angezeigt beim Laden des @defer-Blocks

Bei der Verwendung von @defer sind @placeholder, @error & @loading zwar optional, aber sie können äußerst nützlich sein und viel Boilerplate-Code einsparen.

On Interaction

Angular rendert den @defer-Block, wenn es eine Interaktion mit dem @placeholder Element gab. Interaktionen können verschiedene Events sein wie: click, touch focus, keypress usw.

On Hover

Angular rendert den @defer-Block wenn der User mit der Maus über den @placeholder hovert.

On Timer

Der @defer-Block wird nach einer festgelegten Zeit gerendert.

On Idle

Nachdem die initiale Seite geladen wurde und sich der Browser im Ruhezustand befindet, wird der @defer-Block geladen.

On Viewport

Der Inhalt des @defer-Blocks wird dann gerendert, wenn sich der Inhalt des @placeholder im sichtbaren Teil des Browserfensters befindet.

Prefetch

Neben der Möglichkeit, Teile des Templates nachzuladen, ist es noch möglich, den Ladevorgang durch die prefetch-Bedingung zu beeinflussen. Der Inhalt im @defer-Block wird geladen, wenn der User mit der Maus über den Inhalt im @placeholder hovert. Angular rendert aber den Inhalt im @defer-Block erst dann, wenn es eine Interaktion mit dem @placeholder gab.

Signals sind Production Ready

Signals wurden in Angular Version 16 als Developer Preview Feature vorgestellt und sind jetzt stabil und bereit für die Verwendung in produktiven Umgebungen.

Automatisches Entfernen von CSS

Wenn eine Komponente aus dem DOM entfernt wird, wird ab sofort auch das entsprechende CSS automatisch entfernt. Dies hat positive Auswirkungen auf die Performance und sorgt für eine verbesserte Benutzererfahrung.

Fehler im Dev Mode beim langsamen lazy loading von Bildern

Mit dem Tool NgOptimizedImages bietet Angular eine Möglichkeit, Bilder für das Web zu optimieren, jedoch kann das zu verlangsamtem Laden der initialen Seite führen, wenn alle Bilder lazy geladen werden. Deshalb sollte man die Bilder, die die höchste Priorität haben, auch sofort laden.  Sollte man diesen Schritt vergessen, zeigt Angular jetzt einen Fehler in der Konsole an.

View Transitions API

Der Angular Router kann jetzt die neue View Transitions API moderner Browser verwenden, um das Routing zwischen Seiten zu animieren.

Um die Api verwenden zu können, muss die withViewTransitions-Funktion importiert werden:

 

Die withViewTransitions-Funktion muss noch in der Routerkonfiguration hinzugefügt werden:


Mit diesen wenigen Schritten ist es jetzt möglich, Animationen beim Routing zu haben. Zusätzlich ermöglicht die View Transitions API eigene Animationen mit CSS zu erstellen.

 

Fazit

Angular 17 ist ein weiteres Release vollgepackt mit neuen Features und Verbesserungen. Dieses bringen uns einen Schritt weiter in der modernen Web Entwicklung.

Der offizielle Zeitpunkt des Releases ist für diese Woche geplant. Mehr Infos zum offiziellen Release gibt es unter: https://angular.io/

Blogautor

Dinko Hodžić
Softwareentwickler ARS Computer und Consulting GmbH

Mit uns arbeiten

Sie suchen einen Partner, der nicht nur berät, sondern mit Ihnen gemeinsam gestaltet? Ob Strategie, Technologie oder Umsetzung – wir unterstützen Sie entlang der gesamten digitalen Wertschöpfungskette. Lernen Sie unsere Leistungen kennen und finden Sie genau den Einstieg, der zu Ihren Zielen passt.

Bei uns arbeiten

Du willst nicht nur abwarten, was als nächstes passiert, sondern es mitgestalten? Dann bist du bei uns genau richtig. Wir suchen Menschen mit Haltung, Leidenschaft und Lust auf Wirkung – Entwickler:innen, Strateg:innen, Consultants und Kreative, die mit uns digitale Lösungen vorantreiben möchten.

Blog 16.05.24

Angular 18: Das nächste Kapitel

Angular 18 bringt Leistungsverbesserungen, neue Features und Entwicklerwerkzeuge mit sich. Erfahren Sie mehr über Zoneless Angular, verbesserte Bundling-Strategien und Barrierefreiheitsverbesserungen.

Blog 19.09.24

Die Zukunft datenbankzentrierter IT-Architekturen

Datenbankzentrierte IT-Architekturen prägen viele Unternehmen. Doch ist dieser Ansatz noch zukunftsfähig? Dieser Artikel beleuchtet die Herausforderungen und Alternativen.

Blog 30.05.24

React Server Components und Next.js

Erfahren Sie mehr über React Server Components und Next.js für effizientes Server Side Rendering in Web-Applikationen. Eine detaillierte Analyse und Implementierungstipps.

Blog 13.06.24

Barrierefreiheit richtig umsetzen

Warum Barrierefreiheit im Web so wichtig ist und wie sie richtig umgesetzt werden kann. Entdecken Sie die Vorteile, Prinzipien und Best Practices für eine inklusive Online-Umgebung.

Blog 23.08.24

"DevOps, quo vadis?" – Team Topologien

Erfahren Sie, wie Team-Topologien in DevOps Silos aufbrechen und erfolgreiche Zusammenarbeit fördern. Entdecken Sie die vier fundamentalen Teamarten.

Blog 28.08.23

Demokratisierung von Softwaretests

Besser und schneller Software testen: Welche Testmethoden beziehen nicht-technische Abteilungen ein? Über Tools wie Cypress und Cucumber lesen Sie hier.

Blog 10.10.24

DevOps? Warum APIOps der nächste logische Schritt ist

APIOps erweitert DevOps-Praktiken auf APIs, um deren Entwicklung zu automatisieren und zu optimieren. Dieser Ansatz verbessert Qualität, Sicherheit und Geschwindigkeit im API-Management.

Blog 13.11.24

Versteckte Barrieren durch Drittanbieter

Drittanbieter-Integrationen erleichtern die Webentwicklung, bergen aber Risiken für die Barrierefreiheit. Erfahren Sie, wie Sie Barrieren erkennen und vermeiden.

Blog 18.07.24

Ticket-Schneiden: Best Practices und Agile Methoden

Erfahren Sie, wie Sie effektive Tickets für die Softwareentwicklung schreiben und schneiden, um Probleme zu vermeiden. Mehr über die Bedeutung von User Stories und deren korrekte Umsetzung.

Blog 05.09.24

Effiziente DevOps-Teams: Teamschnitte und Kommunikation

Durch gezielte Teamschnitte und optimale Kommunikationsmodi wird die kognitive Last in DevOps-Teams reduziert. Für effizientere Zusammenarbeit und kontinuierlichen Fortschritt.

Blog 24.10.24

DevOps und APIOps in der Praxis: Best Practices

Wie lassen sich DevOps und APIOps erfolgreich kombinieren? In diesem Artikel erfahren Sie, welche Best Practices und Erfolgsfaktoren moderne Softwareentwicklung schneller und skalierbarer machen.

Blog 02.02.24

So kommt Ordnung in den Infrastructure as Code-Werkzeugkaste

Ordnung im IaC-Dschungel: Welches Tool passt? Dieser Artikel gibt Überblick über die wichtigsten Werkzeuge für Infrastructure as Code.

Blog 12.01.24

Infrastructure as Code (IaC)

Infrastructure as Code (IaC) und die neuesten Entwicklungen in der Cloud-Infrastrukturverwaltung mit Tools wie Terraform und Crossplane. Ein Blick auf die Zukunft des Infrastrukturmanagements.

Blog 26.04.24

Team Topology: Ein Wegweiser für effektive DevOps-Kultur

Erfahren Sie, wie Team Topology und effektive Kommunikationsmodi die DevOps-Kultur fördern und die Softwareentwicklung revolutionieren. Ein Wegweiser für erfolgreiches Teammanagement.

Blog 04.07.24

Warum Shift Left jetzt unverzichtbar ist

Erfahren Sie, warum Shift Left und Feedbackschleifen unverzichtbar für eine erfolgreiche Softwareentwicklung sind. Verbessern Sie Qualität, Sicherheit und Effizienz in Ihrem Unternehmen.

Blog 19.01.23

Digitalisierung und das richtige Mindset

Digitalisierung erfordert Umdenken weg von Projekten hin zu Produkten. DevOps und offene Fehlerkultur bestimmen moderne IT-Organisationen - auch bei Ihnen?

Blog 22.12.22

Teil 5 - Einfluss von Cloud-native auf die Architekturarbeit

Wir beleuchten technische Aspekte von cloud-native Architekturen, die Vorteile verteilter Systeme und wie wichtig API-Management-System ist.

Blog 13.07.23

CI-Ops vs. GitOps

Um Entwicklungsprozesse zu automatisieren, sind zwei Ansätze populär: CI-Ops und GitOps. Unser Autor vergleicht beide und gibt Code-Beispiele.

Blog 05.10.23

AWS Lambda vs. AWS Fargate

Entdecken Sie die Unterschiede zwischen Serverless-Technologie und Container-Technologie und erfahren Sie, wie AWS Lambda und AWS Fargate von Amazon Web Services diese Ansätze unterstützen.

Blog 08.12.22

Teil 4: Eigenschaften einer Cloud-native Architektur

Beitrag zu Cloud-native Architekturen, ihre Möglichkeiten und Zielsetzungen sowie die Philosophie und Arbeitsweise, die daraus folgt.