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.