foundation

State

Управляйте памятью компонента, очередями обновлений, batching, производными значениями и границами сброса.

State — память, которой компонент владеет между render. Обновление state планирует повторный render; React объединяет несколько обновлений в обработчиках событий ради производительности. Обновления state асинхронны относительно текущего render — сразу после `setState` вы всё ещё видите старое значение.

Держите state минимальным: вычисляйте производные значения в render, а не дублируйте их в state. Функциональные обновления `(prev) => next` нужны, когда следующее значение зависит от уже поставленного в очередь. Сбросьте state, сменив `key` компонента или передав новое начальное значение.

					setCount((c) => c + 1);
setCount((c) => c + 1); // прибавит 2, а не 1
				

На интервью объясняйте концепцию на конкретном примере и называйте поведение, которое проверяют.

Типовые ошибки: скрывать поток данных, дробить компоненты чрезмерно и выполнять побочные эффекты в render.

Компромисс часто между ясностью и переиспользованием или между явными props и удобством.

Чеклист:

  • Назовите, что означает каждый фрагмент state.
  • Используйте функциональные обновления для зависимых изменений.
  • Не копируйте props в state без веской причины.