Vue · Middle · Запитання 3 з 75
Як скасувати застарілий запит, коли id, за яким спостерігають, швидко змінюється (Vue 3.5+)?
watch(id, async (newId) => {
const controller = new AbortController();
onWatcherCleanup(() => controller.abort());
data.value = await fetch(`/api/items/${newId}`, { signal: controller.signal }).then((r) => r.json());
});- ✓Правильна відповідь: Зареєструвати очищення через
onWatcherCleanup, яке виконується перед наступним викликом і під час зупинки - 2Спостерігачі скасовують запити
fetchавтоматично - 3Використати
{ deep: true }у спостерігача
Пояснення
Без очищення повільна стара відповідь може перезаписати нові дані. До 3.5 те саме робили через аргумент onCleanup колбека.