javascript / expert
Snippet
Feingranulare Update-Steuerung mit Computed-Equality-Funktionen
Signals in Angular ermöglichen benutzerdefinierte Gleichheitsfunktionen in 'computed'- und 'signal'-Definitionen. Durch das Überschreiben der Standardprüfung können unnentbehrliche Neuberechnungen verhindert werden, wenn sich komplexe Objekte ändern, aber nur spezifische Eigenschaften relevant sind.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
13
export class UserProfile {user = signal({ id: 1, name: 'Max', lastLogin: new Date() });// Only recompute if the ID changes, ignoring lastLogin updatesuserId = computed(() => this.user().id,{ equal: (a, b) => a === b });constructor() {effect(() => console.log('User ID updated:', this.userId()));}}
angular
Erklärung
1
computed(() => this.user().id, { equal: ... })
Definiert ein abgeleitetes Signal mit einer benutzerdefinierten Vergleichsstrategie.
2
equal: (a, b) => a === b
Sagt dem Signal explizit, Konsumenten nur zu benachrichtigen, wenn der primitive Wert abweicht.
3
effect(() => ...)
Dieser Block wird nur ausgelöst, wenn die 'equal'-Prüfung 'false' ergibt.