Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про React: useeffect, cleanup

Когда вызывается cleanup-функция?

Вопрос проверяет понимание жизненного цикла useEffect и моментов, когда происходит очистка эффектов.

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

Cleanup-функция вызывается перед повторным выполнением эффекта и при размонтировании компонента. Если у эффекта пустой массив зависимостей, cleanup вызовется только при unmount. В StrictMode в dev-режиме cleanup может вызываться чаще. Это нормальное поведение.

Длинный ответ

Cleanup — это часть жизненного цикла эффекта и он строго привязан к зависимостям.

Определение

Cleanup — логика очистки эффекта перед его повторным запуском или удалением компонента.

Сценарии вызова cleanup

  1. Unmount компонента

    • Компонент удаляется из DOM.

  2. Изменение зависимостей

    • Старый эффект очищается.

    • Затем запускается новый эффект.

  3. StrictMode (dev)

    • Эффект и cleanup вызываются дополнительно для проверки.

Пример с зависимостью

useEffect(() => {
  console.log("effect for", id);

  return () => {
    console.log("cleanup for", id);
  };
}, [id]);

Поведение

  1. id меняется.

  2. Выполняется cleanup для старого id.

  3. Запускается эффект для нового id.

Вывод

Cleanup-функция всегда вызывается перед уничтожением эффекта — либо из-за изменения зависимостей, либо при размонтировании компонента.

Уровень

  • Рейтинг:

    5

  • Сложность:

    5

Навыки

  • React

    React

Ключевые слова

#useeffect

#cleanup

Подпишись на React Developer в телеграм