Ответ
В Vue 3 composables — это функции, использующие Composition API для инкапсуляции логики. Для работы с API популярны:
- useFetch — обертка над
fetchс состоянием загрузки, ошибки и данными:
export function useFetch(url) {
const data = ref(null);
const error = ref(null);
const isLoading = ref(false);
const execute = async () => {
isLoading.value = true;
try {
const res = await fetch(url);
data.value = await res.json();
} catch (err) {
error.value = err;
} finally {
isLoading.value = false;
}
};
return { data, error, isLoading, execute };
}
- useAxios — аналогичный хук для Axios
- useSWR — для кэширования и повторных запросов
- useQuery (из Vue Query) — для сложных кэш-стратегий
Ключевые преимущества: переиспользуемость, изоляция состояния, композиция логики. Можно добавлять abort-контроллеры, retry-логику и т.д.