Рефы в React
Если мы хотим запомнить какую-то информацию,
но не хотим, чтобы ее изменение вызывало
рендеринг компонента, то нам пригодятся
рефы и соответственно
хук useRef
, который с ними работает.
Реф (или ссылка) - это обычный JavaScript
объект с единственным свойством current
,
которое вы можете читать или изменять.
Как и стейты, рефы могут хранить любой тип данных - это могут быть числа, строки, объекты и даже функции.
Если ваши данные используются для рендеринга, то храните их в стейте, а если вам не нужен рендеринг, в таком случае использование рефов может стать более эффективным. К тому же в отличие от стейта значение рефа изменяется немедленно.
В целом рефы применяются там, где вам надо
отступить от React и взаимодействовать с
внешними API - чаще с браузерными, которые
не влияют на отображение компонента. Это
может быть к примеру хранение id
таймера
или хранение объекта, для которого не нужно
вычислять JSX, но чаще всего это взаимодействие
с элементами DOM. Их можно применять для
управления фокусом, выделения текста
или воспроизведения мультимедиа.
На следующем уроке мы разберем работу с
рефами и хуком useRef
на практике.