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 без веской причины.