const userStore = useUserStore()

В примере не очищаются resize, keydown и interval, поэтому после размонтирования остаются обработчики и периодическая синхронизация.

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

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

В примере не очищаются resize, keydown и interval, поэтому после размонтирования остаются обработчики и периодическая синхронизация.

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

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

Условие

const userStore = useUserStore()

onMounted(() => { window.addEventListener('resize', handleResize)

const interval = setInterval(() => { userStore.syncData() }, 5000)

document.addEventListener('keydown', handleKeydown)

function handleResize() { /* ... / } function handleKeydown() { / ... */ } })

Ответ

В примере не очищаются resize, keydown и interval, поэтому после размонтирования остаются обработчики и периодическая синхронизация.

Перенесите ссылки на функции и таймер в setup-область и зарегистрируйте cleanup:

const userStore = useUserStore();
let interval;
function handleResize() { /* обработка размера */ }
function handleKeydown() { /* обработка клавиатуры */ }
onMounted(() => {
  window.addEventListener('resize', handleResize);
  document.addEventListener('keydown', handleKeydown);
  interval = setInterval(() => userStore.syncData(), 5000);
});
onUnmounted(() => {
  window.removeEventListener('resize', handleResize);
  document.removeEventListener('keydown', handleKeydown);
  clearInterval(interval);
});

Если syncData асинхронна, дополнительно обрабатывайте её ошибки и не допускайте перекрытия долгих запросов.

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

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

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

Подробнее