Vue · Senior · Запитання 8 з 75
Як зробити один спільний стан composable для всіх компонентів, що його використовують?
export const useOnlineStatus = createSharedComposable(() => {
const online = ref(navigator.onLine);
useEventListener(window, "online", () => (online.value = true));
return { online };
});- ✓Правильна відповідь: Обгорнути його помічником shared composable, який виконує його один раз в
effectScopeі знищує, коли підписників не лишилося - 2Викликати composable в
main.tsі покласти уwindow - 3Composables завжди автоматично ділять стан
Пояснення
Кожен звичайний виклик створює новий стан і слухачі. createSharedComposable із VueUse рахує підписників і зупиняє scope, коли розмонтовується останній компонент.