Angular ist ein quelloffenes, von Google gepflegtes Framework für anspruchsvolle Single-Page-Anwendungen. Anders als reine View-Bibliotheken liefert es das gesamte Werkzeug-Set ab Werk: Komponenten, Routing, Forms, HTTP-Client, Dependency Injection und eine eigene CLI. Seit Version 17 hat sich Angular grundlegend modernisiert: Standalone-Components, Signals, Control Flow im Template und der esbuild-basierte Application-Builder bilden heute das Fundament. Dieser Artikel ordnet Angular technisch und historisch ein und zeigt, wann das Framework die richtige Wahl ist.
Definition: Was ist Angular?
Angular ist ein vollständiges Frontend-Framework für browserbasierte Anwendungen. Im Kern ist es ein opinionated SPA-Framework, das auf TypeScript aufbaut und einen klaren, konventionsgetriebenen Weg vorgibt, wie eine Anwendung strukturiert wird. Die Entwicklung wird transparent auf GitHub geführt, neue Features durchlaufen einen öffentlichen RFC-Prozess.
Wesentliche Bausteine sind:
- Komponenten als wiederverwendbare, gekapselte Bausteine der UI.
- Signals für feingranulare Reaktivität mit Compile-Time-Optimierungen.
- Templates mit deklarativem Binding und integriertem Control Flow (
@if,@for,@switch). - Dependency Injection für lose Kopplung, Tausch und Testbarkeit.
- Router, Forms, HttpClient und DevTools als offizielle Bausteine, nicht als Drittanbieter.
Diese Vollständigkeit ist Programm: Angular versteht sich nicht als Library, sondern als integriertes System, das eine konsistente Antwort auf nahezu jede Architekturfrage einer Web-App liefert.
Eine kurze Geschichte: AngularJS, Angular 2 und der „Reset”
Die größte Quelle für Verwirrung ist der Name. AngularJS (1.x) erschien 2010 und basierte auf Two-Way-Binding über Watcher und einem $scope-Modell. Angular 2 war 2016 ein vollständiger Reset: neue Sprache (TypeScript), neue Architektur (Komponenten statt Controller), neue Renderer-Pipeline. Seitdem trägt das Projekt den Namen „Angular” ohne Suffix.
Seit 2018 folgt Angular einer 6-Monats-Release-Kadenz mit semantischer Versionierung und ng update-Migrationen. Eine kompakte Zeitleiste der jüngeren Versionen:
- v17 (2023): Neuer Control Flow (
@if,@for,@switch), esbuild als Default, Standalone-CLI, deferrable Views. - v18: Zoneless Change Detection als experimentelles Feature, Material 3.
- v19:
standalone: trueist der implizite Default,linkedSignal()undresource()als Reaktiv-Primitive. - v20: Signal-APIs reifen, Forms-Refresh, bessere SSR-Hydration.
- v21 (Nov 2025, aktuell stable): Signal Forms öffentlich, TypeScript 6, optimierte Builder-Pipeline.
- v22 (Preview, geplant Juni 2026): OnPush als Default, weitere Zoneless-Reife.
import { Component, signal, computed } from '@angular/core';
@Component({
selector: 'app-counter',
template: `
<button (click)="inc()">+1</button>
<p>Wert: {{ value() }} – doppelt: {{ doubled() }}</p>
`
})
export class CounterComponent {
// Signals: reaktive Primitive seit v17, stabil ab v19
value = signal(0);
doubled = computed(() => this.value() * 2);
inc() {
this.value.update(v => v + 1);
}
}Abgrenzung: Angular vs. React, Vue, Svelte
Die Frage „welches Frontend-Tool” lässt sich erst beantworten, wenn man die Kategorien sauber trennt. React und Vue sind in ihrem Kern Bibliotheken für die View-Schicht. Routing, State, HTTP, Forms und Build-Pipeline werden im Ökosystem aus dritter Hand zusammengesteckt. Svelte geht einen ähnlichen Weg, kompiliert aber stärker statisch. Angular geht den umgekehrten Weg: Eine integrierte Plattform aus einer Hand, mit verbindlichen Konventionen.
| Aspekt | Angular | React | Vue | Svelte |
|---|---|---|---|---|
| Typ | Framework, opinionated | Library, flexibel | Library, progressiv | Compiler-First |
| Sprache | TypeScript-First | JS / TS optional | JS / TS optional | JS / TS optional |
| Routing | offiziell, eingebaut | extern (z. B. React Router) | offiziell (Vue Router) | extern (z. B. SvelteKit) |
| Forms | offiziell, zwei Modelle | extern | extern | extern |
| DI | erstklassig, hierarchisch | nicht vorhanden | nicht vorhanden | nicht vorhanden |
| Build | CLI mit ng update-Migrationen | beliebig | Vite-zentriert | Vite / SvelteKit |
Praktisch: Wer Wert auf einheitliche Standards in einem großen Team legt und langfristig auf strukturierte Migrationen angewiesen ist, profitiert von Angulars Geschlossenheit. Wer maximale Wahlfreiheit bei Bibliotheken sucht, fühlt sich in React oder Vue freier.
Wann Angular wählen?
Angular spielt seine Stärken vor allem in Enterprise-Kontexten aus: dort, wo Anwendungen über Jahre hinweg gepflegt werden, mehrere Teams parallel arbeiten und einheitliche Standards für Forms, Routing und HTTP gefordert sind. Konkret sprechen für Angular:
- Große, langlebige Anwendungen mit vorhersehbarem Upgrade-Pfad (
ng update). - Teams, die TypeScript ohnehin verbindlich einsetzen und auf strenge Typisierung Wert legen.
- Anwendungen mit komplexen Forms (Validierung, dynamische Formulare, Cross-Field-Logik).
- Architekturen, die auf Dependency Injection, Interceptors und klar getrennte Schichten setzen.
- Organisationen mit klaren UI-Standards (z. B. Angular Material/CDK als offizielle Komponentenbibliothek).
Weniger geeignet ist Angular für sehr kleine Marketing-Seiten oder rein statische Inhalte – dort ist der Footprint höher als nötig. Für stark inhaltsgetriebene Sites bieten sich SSG-Werkzeuge wie Astro oder Frameworks wie Next.js bzw. Nuxt eher an.
Interessantes
6-Monats-Kadenz und 18 Monate LTS
Angular liefert alle sechs Monate ein Major-Release, gefolgt von sechs Monaten aktivem Support und zwölf Monaten LTS mit Sicherheits-Patches. Das ergibt insgesamt ein 18-Monats-Fenster pro Major. Aktuell sind v21 (active), v20 und v19 (beide LTS) supported – ältere Versionen erhalten keine Updates mehr.
Mythos: AngularJS und Angular sind ein Produkt
AngularJS (1.x) und Angular (2+) teilen sich nur den Namen. Sie sind technisch zwei vollkommen verschiedene Projekte. AngularJS hat seinen offiziellen End-of-Life bereits 2022 erreicht. Wer heute „Angular” sagt, meint praktisch immer Angular 2+ – und in modernen Projekten sehr wahrscheinlich v17 oder neuer.
Browser-Support und ES-Targets
Angular folgt dem browserslist-Standard und richtet sich auf moderne Evergreen-Browser aus. Polyfills sind kaum noch nötig, der Compiler erzeugt modernes ES-Output. Alte IE-Targets sind seit langem nicht mehr Teil der Default-Config.
Angular Material und CDK
Material und das Component Dev Kit (CDK) werden vom Angular-Team selbst gepflegt. Dadurch sind Komponentenbibliothek, Theming-System und Framework-Versionen aufeinander abgestimmt – ein Vorteil, den man in React- oder Vue-Welten so nicht selbstverständlich bekommt.
Warum Dependency Injection im Framework
DI ist in Angular kein Add-on, sondern Teil der Plattform. Services, HTTP-Interceptors, Router-Resolver und sogar Komponenten selbst werden über den Injector aufgelöst. Das macht Tausch im Test, scoped Provider pro Route und das Mocken externer Abhängigkeiten ohne Zusatz-Library möglich.