В чем разница между useRef и forwardRef

Ответ

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

forwardRef — это HOC, который позволяет передавать ref через компонент к дочернему элементу. Используется, когда нужно получить доступ к DOM-элементу внутри кастомного компонента.

Пример useRef:

const inputRef = useRef(null);
<input ref={inputRef} />

Пример forwardRef:

const CustomInput = forwardRef((props, ref) => (
  <input ref={ref} {...props} />
));

Ключевое отличие: useRef создает ref, а forwardRef передает его через промежуточные компоненты.