Angular 13 by ITGY

Angular Standalone Component

Angular verabschiedet sich langsam von den NgModule und bringt alles Notwendige in die Komponente ein. Das hilft uns bei der Übersichtlichkeit und macht sie scheinbar leichtgewichtiger. Was ist Standalone Component und welche Vorteile haben wir dadurch?

Mit dem Einzug der Standalone Component geht Angular den nächsten Schritt, um sich von den NgModule zu lösen. Viele Entwickler haben Probleme zu verstehen warum es überhaupt die NgModule gibt und was der Unterschied zu ES2016 Modulen ist. Bei React gibt es diese schließlich auch nicht. Wieso brauchen wir diese in also Angular? Schauen wir uns das mal in Detail an:

Angular Module mit NgModule

Standalone Component in Angular

Anhand des NgModules bestimmt Angular welche Direktive / Komponenten und Pipes zusammen gehören und bundled ( zu deutsch: zusammenpacken ) diese. Damit stellt Angular sicher, dass die PlaygroundComponent Direktiven aus dem CommonModule, beispielsweise *ngIf oder *ngFor, auch bereits existieren, wenn sie benötigt werden.

Diese Module existieren bereits seit Angular 2 und haben schon dem Einen oder Anderen Kopfschmerzen bereitet. Daher wünschen sich Viele von Angular eine bessere Lösung für dieses Verhalten bzw. Problem. Mit Standalone Component geht Angular jetzt den nächsten Schritt, und bringt dem Entwickler die Möglichkeit die Modul-Informationen direkt an die Komponent zu binden. Und so sieht das Ganze dann aus

Angular Standalone Component with CommonModule

Wie in dem Bild zu sehen ist, können wir den standalone flag setzen und direkt die imports einbinden. Wenn es nur ein HTML Snippet Komponente (wie bei React Function Component) ist und die imports nicht benötigt werden, können diese auch weggelassen werden. Somit sieht die kleinste Component wie folgt aus:

Standalone Component in der einfachen Form

Ein Standalone Component kann in NgModule unter den imports eingebunden werden (nicht unter declarations) und dann innerhalb der Komponenten des Modules wie jede andere Komponente verwendet werde.

Import von Standalone Component in NgModule

Standalone Components können natürlich auch von andere Standalone Components abhängig sein. Auch hier landen diese unter den imports wie in den folgenden code Ausschnitt zu sehen.

Standalone Component verwendet andere Standalone Component

Wir können gespannt sein, wann dieses Feature Einzug erhält. Möglicherweise ist es auch schon mit Angular 13 da. Noch werden die Einzelheiten besprochen. Also falls auch ihr noch Vorschläge habt, könnt ihr euch hier mit einbringen.

Natürlich werden wir unsere Angular Schulung anpassen, sobald Standalone Component in Angular landet, um euch in die neuesten Features von Angular Schulen.