Встречается на собеседованиях • сегодня

Как вызвать UseEffect один раз

Чтобы вызвать useEffect только один раз при монтировании компонента, нужно передать пустой массив зависимостей ([]) вторым аргументом:

jsx
useEffect(() => {
  // Код выполнится один раз при монтировании
  console.log('Компонент смонтирован');
}, []); // Пустой массив зависимостей

Это работает, потому что React сравнивает зависимости при каждом рендере. Пустой массив означает, что эффект не зависит ни от каких значений и должен выполняться только при первом рендере.

Важные нюансы:

  1. В режиме Strict Mode в dev-среде эффект может вызываться дважды для обнаружения побочных эффектов
  2. Для отписки от событий/таймеров возвращайте функцию очистки:
jsx
useEffect(() => {
  const timer = setTimeout(() => {}, 1000);
  return () => clearTimeout(timer);
}, []);
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы