> Какие хуки или composables используются для работы с API во Vue 3 (Vue.js)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Библио-Глобус
Стек: Vue.js
> Пример ответа
Во Vue 3 для работы с API чаще всего используются следующие подходы:
1. Встроенные хуки (Options API):
-
mounted()- для выполнения запроса при монтировании компонента -
watch()- для реактивного повторного запроса при изменении зависимостей
2. Composition API хуки:
-
onMounted()- аналогmountedв Composition API -
watch()илиwatchEffect()- для автоматического перезапроса
3. Пользовательские composables (рекомендуемый подход):
-
useFetch(url, options)- встроенный в VueUse или Nuxt 3 -
useAsyncData()- в Nuxt 3 для SSR-безопасных запросов -
Собственный composable, например:
JAVASCRIPT// useApi.jsimport { ref, onMounted } from 'vue'export function useApi(url) {const data = ref(null)const error = ref(null)const loading = ref(false)const fetchData = async () => {loading.value = truetry {const res = await fetch(url)data.value = await res.json()} catch (e) {error.value = e} finally {loading.value = false}}onMounted(fetchData)return { data, error, loading, refresh: fetchData }}
4. Сторонние библиотеки:
-
Vue Query (TanStack Query) -
useQuery(),useMutation()для кэширования и синхронизации -
Pinia - хранилища с actions для API-вызовов
-
Axios - часто оборачивается в composable для перехвата ошибок и токенов
Лучшая практика: создавать отдельные composables для каждого эндпоинта или ресурса, инкапсулируя логику загрузки, ошибок и обновления данных.
> Похожие задачи по frontend
В чем разница v-if и v-show во Vue
Для чего используется teleport во Vue 3
Что гарантирует аргумент key в списках Vue и влияет ли он на порядок элементов
Какие хуки жизненного цикла существуют во Vue и для чего они нужны
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью