> Зачем из useEffect возвращать callback и когда он вызывается (React)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: Kodix, Aston, Сфера

Стек: React

> Пример ответа

Возврат callback из useEffect - это механизм очистки (cleanup). Он вызывается в двух случаях:

  1. При размонтировании компонента - когда компонент удаляется из DOM.

  2. Перед повторным запуском эффекта - если зависимости изменились, React сначала вызывает cleanup предыдущего эффекта, затем выполняет новый.

Зачем это нужно: чтобы предотвратить утечки памяти и побочные эффекты. Например, при подписке на WebSocket или таймере:

JSX
useEffect(() => {
const timer = setInterval(() => console.log('tick'), 1000);
return () => clearInterval(timer); // очистка при размонтировании или изменении зависимостей
}, []);

Если не вернуть callback, таймер продолжит работать даже после ухода со страницы. Cleanup гарантирует, что ресурсы освобождаются корректно.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью