📐 Component Architecture in Angular – Patterns für skalierbare Komponenten
Kleine Komponenten. Große Wirkung.
Wenn du Angular im großen Stil einsetzt, brauchst du eine klare UI-Architektur.
In diesem Beitrag zeige ich dir:
- Wie du Komponenten strukturierst
- Welche Patterns sich in der Praxis bewährt haben
- Und wie du Skalierbarkeit & Klarheit kombinierst
🎯 Ziel: Komponenten, die skalieren
✅ Klarer Zweck
✅ Gute Trennung von Logik und Darstellung
✅ Testbarkeit
✅ Wiederverwendbarkeit
🧱 Der Klassiker: Smart vs. Dumb Components
🧠 Smart (Container)
- Verstehen Business-Logik
- Rufen Use Cases auf
- Leiten Daten weiter
@Component({
selector: 'app-user-page',
template: `<app-user-view [user]="user()" />`
})
export class UserPageComponent {
user = toSignal(this.getUser.execute('123'));
}
🎨 Dumb (Presentational)
- Nur
@Input()
&@Output()
- Kein Service, kein API-Call
- Volle Wiederverwendbarkeit
@Component({
selector: 'app-user-view',
template: `<p>{{ user.name }}</p>`
})
export class UserViewComponent {
@Input() user!: User;
}
🧩 Weitere bewährte Patterns
🔌 Entry Components
@Component({
selector: 'app-modal',
standalone: true,
imports: [CommonModule]
})
export class ModalComponent {}
➡ Für Lazy Loading & dynamisches Rendern per ViewContainerRef
🧰 UI Building Blocks
Bau dir wiederverwendbare Komponenten:
<app-button>
<app-card>
<app-avatar>
<app-icon>
➡ Einheitliches Design, zentrale Pflege, weniger Duplikate
📦 Feature Shell Pattern (z. B. mit Nx)
Struktur:
libs/
├── feature-dashboard/
│ ├── dashboard.component.ts
│ └── + children
├── ui-dashboard-card/
├── ui-dashboard-header/
➡ Trennung von Layout, Features und Logik
⚠️ Don'ts
- ❌
*ngIf="user && user.name && user.address?.street"
– lieber mit@if
oder Input-Guards - ❌ Logik in Presentational Component (z. B. HTTP)
- ❌ Komponenten mit 5+ Responsibilities
✅ Fazit
Komponentenarchitektur ist kein Selbstzweck – sie entscheidet über:
- Lesbarkeit
- Testbarkeit
- Erweiterbarkeit
Mach’s wie die Profis: klein, klar, wiederverwendbar.
📍 Bald im Blog: 🌍 Internationalisierung (i18n) richtig gemacht – Angular + Übersetzungsstrategie
Hast du Fragen oder ein Projekt im Kopf?
Ich freue mich auf deine Nachricht. Lass uns gemeinsam deine Vision verwirklichen!
Jetzt Kontakt aufnehmen