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

Когда срабатывает UseEffect с точки зрения массива зависимостей

useEffect срабатывает в следующих случаях:

  1. Без массива зависимостей - при каждом рендере компонента
  2. С пустым массивом [] - только при монтировании (аналог componentDidMount)
  3. С зависимостями [dep1, dep2] - при изменении любой из зависимостей (shallow сравнение)

Пример:

jsx
useEffect(() => {
  console.log('Сработает при каждом рендере');
});

useEffect(() => {
  console.log('Сработает только при монтировании');
}, []);

useEffect(() => {
  console.log('Сработает при изменении count или name');
}, [count, name]);

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

  • Зависимости сравниваются через Object.is
  • Если передать undefined или null как зависимость - эффект будет срабатывать каждый раз
  • Нельзя условно объявлять хуки (нарушает правила Hooks)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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