GEDOPLAN

Kaum eingeführt, schon wieder besser. Trotz Minor Release Sprünge serviert Angular uns eine ganze Reihe cooler Features, bei denen der Hauptdarsteller klar ist: Signals. Hier ein Überblick über den Stand für Angular 17.2

Signal Inputs

(immutable) Komponenten-Inputs via signal anstatt @Import (computed() oder effect() ersetzen ngOnChanges)

  @Input({alias: 'oi', required: true, transform: (v: string) => v + '!'})
  oldInput!: string;

  signalInput = input.required({alias: 'si', transform: (v: string) => v + '! (better)'});

Signal Models

Two-Way Binding via model anstatt der Kombination aus @Input/@Output

  @Input()
  oldModelInput?: string;
  @Output()
  oldModelInputChanged = new EventEmitter<string>();
  
  newModel = model<string>();

<app-signals-io
oldModelInput=“Initial Value“
(oldModelInputChanged)=“ioOld = $event
newModel=“Initial Value“
(newModelChange)=“ioNew = $event
>

Signal Queries

viewChild / viewChildren signals anstatt @ViewChild / @ViewChildren

  @ViewChildren('out')
  oldSpans?: QueryList<HTMLSpanElement>;

  newSpans = viewChildren<HTMLSpanElement>('out')

Offensichtlich, wohin die Reise geht. Alle Zeichen stehen auf „signals“.

Live. In Farbe. Github.