javascript / expert
Snippet
Manuelle Bereinigung von Effekten via effectScope
Die effectScope-API ermöglicht das Gruppieren reaktiver Effekte (Watcher, Computed Properties), damit diese gemeinsam beendet werden können. Dies ist essenziell für das Management von Reaktivität in externen Klassen oder Services, in denen die automatische Bereinigung beim Unmounten einer Komponente fehlt.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
import { effectScope, watch, ref } from 'vue';const scope = effectScope();const count = ref(0);scope.run(() => {watch(count, (val) => console.log(`Count: ${val}`));});// Later, to dispose all effects within the scopescope.stop();
vue
Erklärung
1
const scope = effectScope();
Initialisiert einen neuen Container für einen reaktiven Effekt-Scope.
2
scope.run(() => { ... });
Führt eine Funktion aus, deren reaktive Effekte von diesem Scope erfasst werden.
3
scope.stop();
Beendet rekursiv alle erfassten Effekte, um Speicherlecks zu vermeiden.