JS: React
2026-02-26 19:54 Diff

Иногда в компонентах нам нужен доступ к DOM-элементам — например, чтобы вызывать методы этого элемента. Элементы DOM не являются частью React, поэтому напрямую в компоненте к ним нет доступа. Но для этого есть хук useRef(), который позволяет получить доступ к таким элементам.

С помощью useRef() можно получить доступ к DOM-элементам, чтобы использовать их в useEffect() или обработчиках событий:

Значение внутри inputEl появляется после монтирования компонента, но до вызова хуков. Для этого нужно не забывать установить на нужный элемент атрибут ref. С помощью этого атрибута устанавливается связь между хуком и элементом, к которому мы хотим получить доступ.

Другой вариант использования хука useRef() — хранение любых данных между вызовами компонента. Этот хук возвращает обычный объект со свойством current внутри. Единственное отличие этого объекта от создаваемого вручную { current: ... } в том, что хук возвращает один и тот же объект при каждом вызове компонента. По своему поведению useRef() похож на использование обычного свойства внутри классового компонента (this.someproperty).

Ниже пример того, как можно сохранять предыдущее состояние с помощью useRef():

Попрактиковаться

Рекомендуемые программы