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

Почему не нужно использовать useEffect без массива зависимостей

Использование useEffect без массива зависимостей приводит к выполнению эффекта при каждом рендере компонента. Это может вызвать:

  1. Бесконечные рендеры - если эффект изменяет состояние, которое триггерит ререндер
  2. Производительность - эффект выполняется слишком часто без необходимости
  3. Утечки памяти - если эффект создает подписки/таймеры, они могут накапливаться

Пример плохого кода:

jsx
useEffect(() => {
  // Выполняется при каждом рендере
  fetchData(); 
});

Всегда указывайте зависимости или пустой массив, если эффект должен выполняться только при монтировании:

jsx
useEffect(() => {
  // Выполняется один раз
  fetchData();
}, []); 

useEffect(() => {
  // Выполняется только при изменении userId
  fetchUser(userId); 
}, [userId]);
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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