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

Сколько будет перерисовок, если внутри useEffect вызвать 3 setState

Вызов 3 setState внутри одного useEffect приведёт к одной перерисовке, если:

  1. Все setState обновляют одну и ту же часть состояния (React батчит их автоматически).
  2. Нет других эффектов или условий, вызывающих ререндер.

Пример:

jsx
useEffect(() => {
  setCount(1);      // Батчится
  setName('John');  // Батчится
  setActive(true);  // Батчится
}, []);  
// Один ререндер вместо трёх

Исключение: если setState зависит от предыдущего состояния (через колбэк), React может разбить на 2 ререндера:

jsx
setCount(prev => prev + 1);  // Может вызвать отдельный ререндер

Оптимизация: используйте useReducer или объединяйте состояние в один объект, если логика сложная.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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