Загрузка...
Загрузка...
useRef — это хук в React, который позволяет сохранять ссылки на DOM-элементы или значения, которые не вызывают перерисовки компонента при изменении. Это может быть полезно для получения доступа к элементам в DOM или хранения значений между рендерами.
Ссылки на DOM элементы. useRef может использоваться для получения прямого доступа к DOM-элементам, например, для фокусировки на поле ввода или измерения размеров элемента.
Хранение значений между рендерами. useRef сохраняет значение, которое не вызывает повторный рендер компонента при его изменении. Это полезно, когда нужно хранить данные, которые не должны быть частью состояния компонента, но должны сохраняться между рендерами.
const myRef = useRef(initialValue);
initialValue — это начальное значение ссылки. Оно может быть null или любым другим значением, которое вам нужно сохранить.
myRef.current — это объект, который хранит текущее значение. Для ссылок на DOM-элементы, myRef.current будет ссылаться на сам элемент.
import { useRef } from "react";
function FocusInput() {
const inputRef = useRef(null);
const focusInput = () => {
inputRef.current.focus(); // Фокусируемся на поле ввода
};
return (
<div>
<input ref={inputRef} type="text" />
<button onClick={focusInput}>Фокус на поле ввода</button>
</div>
);
}
В этом примере:
inputRef создается с помощью useRef и передается в атрибут ref поля ввода.import { useRef } from "react";
function Timer() {
const countRef = useRef(0);
const increment = () => {
countRef.current += 1;
console.log(countRef.current); // Печатает количество обновлений
};
return (
<div>
<button onClick={increment}>Увеличить</button>
</div>
);
}
В этом примере:
countRef используется для хранения значения счетчика между рендерами.Использование useRef:
useRef позволяет сохранить данные или ссылки на элементы между рендерами, не вызывая лишних перерисовок, что делает его идеальным инструментом для работы с DOM и хранения состояния, не влияющего на рендеринг.