Vue · Senior · Frage 8 von 75
Wie teilt man eine Instanz des State eines Composables zwischen allen Komponenten, die es nutzen?
export const useOnlineStatus = createSharedComposable(() => {
const online = ref(navigator.onLine);
useEventListener(window, "online", () => (online.value = true));
return { online };
});- 1Das Composable in
main.tsaufrufen und anwindowhängen - 2In einen Helfer packen, der es einmal in einem
effectScopeausführt - 3Nichts: Composables teilen State immer automatisch
Antwort zeigen
Richtige Antwort: In einen Helfer packen, der es einmal in einem effectScope ausführt
Erklärung
Jeder normale Aufruf erzeugt neuen State und neue Listener. createSharedComposable aus VueUse zählt Abonnenten und stoppt den Scope, wenn die letzte Komponente unmountet.