0 Tage Serie
javascript / expert
Snippet

Statussynchronisierung mit Linked Signals für kontrollierte Veränderlichkeit

Ein linkedSignal ist ein beschreibbares Signal, das seinen Wert automatisch zurücksetzt oder neu berechnet, wenn sich ein Quell-Signal ändert. Im Gegensatz zu computed signals, die schreibgeschützt sind, erlauben linkedSignals manuelle Aktualisierungen, während sie eine deklarative Abhängigkeit für ihren 'Standardzustand' beibehalten.

snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import { signal, linkedSignal } from '@angular/core';
export class ProductManager {
categories = signal(['Electronics', 'Books']);
selectedCategory = signal('Electronics');
// Resets sub-selection whenever the parent category changes
selectedProduct = linkedSignal({
source: this.selectedCategory,
computation: (cat) => `First ${cat} Item`
});
manualOverride(name: string) {
// Unlike computed(), linkedSignal is writable
this.selectedProduct.set(name);
}
}
angular
Erklärung
1
source: this.selectedCategory
Das Signal, das ein Zurücksetzen des linkedSignals auslöst, wenn sich sein Wert ändert.
2
computation: (cat) => ...
Eine Funktion, die den neuen Wert des Signals basierend auf der Änderung der Quelle bestimmt.
3
this.selectedProduct.set(name);
Zeigt, dass linkedSignal beschreibbar ist, wodurch der UI-Zustand von der Standardberechnung abweichen kann.