> Зачем из useEffect возвращать callback и когда он вызывается (React)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Kodix, Aston, Сфера
Стек: React
> Пример ответа
Возврат callback из useEffect - это механизм очистки (cleanup). Он вызывается в двух случаях:
-
При размонтировании компонента - когда компонент удаляется из DOM.
-
Перед повторным запуском эффекта - если зависимости изменились, React сначала вызывает cleanup предыдущего эффекта, затем выполняет новый.
Зачем это нужно: чтобы предотвратить утечки памяти и побочные эффекты. Например, при подписке на WebSocket или таймере:
JSXuseEffect(() => {const timer = setInterval(() => console.log('tick'), 1000);return () => clearInterval(timer); // очистка при размонтировании или изменении зависимостей}, []);
Если не вернуть callback, таймер продолжит работать даже после ухода со страницы. Cleanup гарантирует, что ресурсы освобождаются корректно.
> Похожие задачи по frontend
Почему в React useState для initial value лучше передавать функцию, а не результат вызова функции?
Что значит оптимизация в React
Как правильно обрабатывать асинхронные функции в useEffect и почему нельзя делать колбэк асинхронным
Что такое мемоизация
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью