useRef в React Заметка
DEV Community на русском

useRef в React

useRef — это хук React для создания постоянных изменяемых ссылок. Он позволяет хранить значения, изменение которых не вызывает повторный рендеринг. Распространенное применение — прямой доступ к DOM-элементам, что позволяет выполнять такие действия, как установка фокуса на поле ввода.Для его использования импортируйте useRef из React и инициализируйте его значением. Объект ссылки имеет свойство current, в котором хранится значение или DOM-узел. Изменение ref.current не вызывает повторный рендеринг компонента, в отличие от useState.useState предназначен для управления состоянием, которое влияет на пользовательский интерфейс и вызывает повторный рендеринг при обновлениях. В отличие от него, useRef идеально подходит для значений, которые должны сохраняться между рендерингами без обновлений пользовательского интерфейса, таких как идентификаторы таймеров или ссылки на DOM. Например, изменение переменной useState вызывает повторный рендеринг, в то время как обновление useRef.current — нет.Доступ к DOM-элементу включает прикрепление ссылки к элементу с помощью атрибута ref. После рендеринга ref.current указывает на фактический DOM-узел, позволяя прямое взаимодействие. Это похоже на пульт дистанционного управления, который напрямую взаимодействует с телевизором.Ключевым моментом в useRef является всегда доступ к его значению через свойство .current. Хотя изменение .current изменяет значение, React автоматически не выполняет повторный рендеринг. Поэтому useRef лучше всего понимать как способ "запомнить значение" и "получить доступ к ссылке" без вызова повторного рендеринга.Основное отличие заключается в их поведении: изменения useState приводят к повторному рендерингу и обновлениям пользовательского интерфейса, тогда как изменения useRef — нет. Понимание этой разницы имеет решающее значение для эффективного использования useRef в приложениях React.