foundation
useRef
Храните изменяемые значения или ссылки на DOM между render без лишних перерисовок.
`useRef` хранит мутабельное поле `.current`, которое переживает render и не вызывает обновление при изменении. Привязывайте ref к DOM-узлам для фокуса, измерений или интеграции с библиотеками вне React.
Refs также хранят экземплярные значения — id таймеров, предыдущие props или abort controller — которые не должны быть в state, потому что напрямую не влияют на UI. Чтение или запись `ref.current` во время render допустимо в отдельных паттернах, но может сбивать с толку; фиксируйте намерение.
Не дублируйте в ref state, который должен управлять UI.
На интервью объясняйте концепцию на конкретном примере и называйте поведение, которое проверяют.
Типовые ошибки: скрывать поток данных, дробить компоненты чрезмерно и выполнять побочные эффекты в render.
Компромисс часто между ясностью и переиспользованием или между явными props и удобством.
Чеклист:
- Изменение ref не вызывает render.
- DOM-ref интегрируют императивные API.
- Не зеркалируйте видимый state в ref.