Вопрос проверяет понимание механизма передачи ref через компоненты в React и умение использовать forwardRef для доступа к DOM-элементам дочерних компонентов.
forwardRef — это функция из библиотеки React, которая позволяет компоненту принимать ref и передавать его дальше, обычно к DOM-элементу или другому компоненту. По умолчанию ref не передается через пропсы, поэтому для его проброса используется forwardRef.
import React, { forwardRef, useRef } from 'react';
const CustomInput = forwardRef((props, ref) => {
return <input ref={ref} {...props} />;
});
function App() {
const inputRef = useRef(null);
const focusInput = () => {
inputRef.current.focus();
};
return (
<>
<CustomInput ref={inputRef} placeholder="Type here" />
<button onClick={focusInput}>Focus Input</button>
</>
);
}Компонент, обернутый в forwardRef, получает второй аргумент — ref. Этот ref можно привязать к любому DOM-элементу внутри компонента. Родитель использует useRef() и передает его как пропс ref. React автоматически пробрасывает ref через forwardRef.
forwardRef полезен, когда нужно сохранить доступ к DOM-элементу внутри компонента-обертки, не нарушая инкапсуляцию. Используйте его для фокуса, анимаций или интеграции с библиотеками, требующими прямого доступа к DOM.
Уровень
Рейтинг:
4
Сложность:
5
Навыки
JavaScript
React
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию