0 Tage Serie
javascript / expert
Snippet

Granulare Performance-Steuerung durch ChangeDetectorRef Detachment

Durch den Aufruf von 'detach()' am ChangeDetectorRef wird die Komponente aus dem automatischen Change-Detection-Baum entfernt. Dies ist entscheidend für Hochleistungsszenarien wie Echtzeit-Graphen oder WebGL-Wrapper, bei denen UI-Updates nur manuell über 'detectChanges()' basierend auf spezifischer Logik ausgelöst werden sollen.

snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Component({ selector: 'heavy-graph', template: `<div>{{ data }}</div>` })
export class HeavyGraphComponent {
data = 0;
constructor(private cd: ChangeDetectorRef) {
this.cd.detach();
}
updateData(val: number) {
this.data = val;
if (val % 10 === 0) {
this.cd.detectChanges();
}
}
}
angular
Erklärung
1
this.cd.detach();
Deaktiviert die automatische Änderungserkennung für diese Komponente und ihre Kinder.
2
this.cd.detectChanges();
Löst manuell eine lokale Prüfung der Änderungserkennung für die aktuelle View aus.