Vue · Middle · Pytanie 23 z 75
Dlaczego composables trzeba wywoływać synchronicznie w <script setup>, a nie w callbacku?
onMounted(() => {
const { x } = useMouse(); // problem
});- ✓Poprawna odpowiedź: Vue potrzebuje aktywnej instancji komponentu, by zarejestrować hooki cyklu życia i watchery composable
- 2Composables można wywołać tylko raz na aplikację
- 3Callbacki działają tylko na serwerze
Wyjaśnienie
Wewnątrz callbacku nie ma bieżącej instancji, więc onUnmounted w composable nie zostaje zarejestrowany, a listenery wyciekają. <script setup> przywraca instancję po await najwyższego poziomu, więc wywołania po nim też działają.