export function useUserData(userId) {

computed обращается к null до загрузки; load не обрабатывает ошибки, а изменение userId и SSR-гидратация не учтены.

Короткий ответ

Что ответить на собеседовании

computed обращается к null до загрузки; load не обрабатывает ошибки, а изменение userId и SSR-гидратация не учтены.

Подробный разбор

Ответ с пояснениями

Условие

export function useUserData(userId) { const { $api } = useNuxtApp()

const user = ref(null) const isLoading = ref(true)

const displayName = computed(() => { return ${user.value.firstName} ${user.value.lastName} })

async function load() { const data = await $api.get(/users/${userId}) user.value = data isLoading.value = false }

load() return { user, isLoading, displayName } }

Ответ

computed обращается к null до загрузки; load не обрабатывает ошибки, а изменение userId и SSR-гидратация не учтены.

Защитите displayName проверкой наличия user. loading должен сбрасываться в finally, ошибка — сохраняться для UI. Для реактивного userId нужен watch или реактивный ключ с защитой от гонок. В Nuxt используйте подходящий SSR-aware useAsyncData/useFetch вокруг API-контракта; прямой вызов load может повторяться на сервере и клиенте. Формат результата $api.get сначала уточните.

Источник: nuxt.com.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее