GEDOPLAN
AngularWebprogrammierung

Angular 22

AngularWebprogrammierung
angular22 png

Seit Anfang Juni ist es so weit, Angular 22 ist an den Start gegangen. Hier die Neuerungen kurz zusammengefasst.

Neue Standards

  • zoneless

Die Abkehr von Zone.js aus Performance- und Bundle-Sitze-Gründen kommt zu einem Abschluss. „Zonless“ ist bei neuen Projekten jetzt der Standard. Bestehende Projekte müssen hier erst einmal nicht direkt umstellen. Langfristig ist die Migration hin zu zoneless+OnPush+Signals aber zu empfehlen, wenn abhängige Bibliotheken das nicht verhindern.

  • OnPush

Neue Komponenten verwenden nun im Standard „OnPush“, führt also nur noch bei direkten Änderungen an der Komponente (Input, Events, Signals, async-Pipe) eine Change-Detection aus und führt somit zu weit weniger Renderings.

  • Vitest

Karma sagt ByeBye. Vitest ist nun in neuen Projekten der neue Standard Test Runner. Hier ein Beitrag von uns wie eine Umstellung aussehen kann: https://gedoplan.de/angular-migration-zu-vitest/

Signals Signals Signals

  • Signal Forms = stable

„Da sind sie endlich“ Signals Forms sind nun auch endlich als „stable“ gekennzeichnet und schließen die unbequeme Lücke zwischen reaktiven Komponenten und Formularen. Wir haben bereits von einiger Zeit einen Blick riskiert: https://gedoplan.de/angular-formulare-reactive-zu-signals-1-2/

  • Resource API = stable

Auch diese „Reaktive-Lücke“ schließt sich. Die Ressource API bekommt ebenfalls seinen „stable“ Stempel. Damit stehen uns die resource Varianten httpResource (einfache HTTP Abfragen), resource (Promise basiert) und rxResource (RxJS / Observable basiert) in unseren Projekten zur Verfügung, siehe: https://gedoplan.de/angular-resource-api/

  • debounce

Analog der debounce-Funktion bei Observables, erlaubt es uns Angular nun direkt auf Basis von Signals eine verzögerte Verarbeitung (Beispiel: Suchfeld) zu aktivieren (idQuery = debounced(this.query, 500))

Dies und Das

  • @Service-Decorator, als Alternative zu @Injected für eine bessere Semantic
  • injectAsync(), für die asynchrone injizieren von z.B. Services, ähnlich wie im Routing:
    • injectAsync(() => import(‚./demo-service‘).then(m => m.DemoService))
    • erst bei der Verwendung (promise) wird der Service geladen und auch die Initialisierung durchgeführt (interessant bei der Verwendung von Signal-Resource auf Service-Ebene)
  • HTML Syntax Erweiterungen
    • Kommentare sind erlaubt
    • Spread Syntax ist erlaubt
    • Arrow Functions sind erlaubt

Insgesamt also ein spannender Release, der viele lose Fäden der letzten Versionen jetzt zusammen knüpft. Prima!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Bitte gib eine gültige E-Mail-Adresse ein.
Sie müssen den Bedingungen zustimmen, um fortzufahren.

Autor

Diesen Artikel teilen

LinkedIn
Xing

Gibt es noch Fragen?

Fragen beantworten wir sehr gerne! Schreibe uns einfach per Kontaktformular.

Kurse

weitere Blogbeiträge

openapi 1
Webprogrammierung

Angular + OpenAPI Generator

In einem älteren Posting haben wir schon einmal einen Blick auf Swagger geworfen, eine charmante Möglichkeit aus den eigenen Rest-Schnittstellen…

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!

Work Life Balance. Jobs bei Gedoplan

We are looking for you!

Lust bei GEDOPLAN mitzuarbeiten? Wir suchen immer Verstärkung – egal ob Entwickler, Dozent, Trainerberater oder für unser IT-Marketing! Schau doch einfach mal auf unsere Jobseiten! Wir freuen uns auf Dich!