javascript / expert
Snippet
Eigene reaktive Referenz-Implementierung mittels CustomRef Expliziter Trigger
Vues `customRef` ermöglicht die Entwickler-gesteuerte Verwaltung von reaktiven Abhängigkeiten und Benachrichtigungen. Durch die Entkopplung von Mutation und `trigger()` entsteht eine gepufferte reaktive Referenz, die Beobachter erst nach Aufruf einer expliziten Commit-Methode benachrichtigt.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import { customRef } from 'vue';export function useExplicitBufferedRef(initialValue) {let value = initialValue;let dirty = false;return customRef((track, trigger) => ({get() {track();return value;},set(newValue) {if (!Object.is(value, newValue)) {value = newValue;dirty = true;}},commit() {if (dirty) {dirty = false;trigger();}}}));}
vue
Erklärung
1
return customRef((track, trigger) => ({
Initialisiert eine customRef-Fabrik, die die reaktiven Dependency-Hooks track und trigger erhält.
2
track();
Registriert aktive Effekt-Abhängigkeiten immer dann, wenn der Getter ausgewertet wird.
3
trigger();
Benachrichtigt Abonnenten manuell zur Ausführung von Effekten erst bei explizitem Aufruf.