В чём разница между useEffect с пустым массивом зависимостей и useEffect без массива зависимостей?

Хук useEffect в React срабатывает после рендера компонента и позволяет выполнять побочные эффекты. Управлять моментами срабатывания можно через массив зависимостей — второй аргумент useEffect.

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

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

Хук useEffect в React срабатывает после рендера компонента и позволяет выполнять побочные эффекты. Управлять моментами срабатывания можно через массив зависимостей — второй аргумент useEffect.

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

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

Хук useEffect в React срабатывает после рендера компонента и позволяет выполнять побочные эффекты. Управлять моментами срабатывания можно через массив зависимостей — второй аргумент useEffect.

  • Если не передать массив зависимостей, эффект будет выполняться после каждого рендера компонента (каждого обновления).
  • Если передать пустой массив [], эффект выполнится только один раз — после первого монтирования компонента (аналог componentDidMount).
  • Если передать массив с зависимостями, эффект будет выполняться только при изменении хотя бы одной из этих зависимостей.

Пример:

useEffect(() => {
  console.log('Эффект сработал');
}, [props.value]); // сработает только при изменении props.value

Таким образом, чтобы useEffect сработал только в определённые моменты, нужно правильно указать зависимости, от которых зависит эффект.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку