Ref는 render 메서드에서 생성된 DOM 노드나 React 엘리먼트에 접근하는 방법을 제공 합니다.
리액트 프로젝트에서도 가끔씩 DOM을 직접 선택해야 하는 상황이 발생 할 수 있습니다.
useRef는 React Hook 중 하나로, 함수형 컴포넌트에서도 DOM 노드나 클래스 컴포넌트에서의 인스턴스 변수를 사용할 수 있게 해줍니다.
import React, { useRef } from 'react';
const inputRef = useRef(null);
<input disabled type="text" ref={inputRef} />
ref prop은 여러가지 HTML 엘리먼트 중에서도 을 제어 할 때 많이 사용됩니다.
import React, { useRef } from "react";
function CreateRef() {
const inputRef = useRef(null);
function handleFocus() {
inputRef.current.disabled = false;
inputRef.current.focus();
}
return (
<>
<input disabled type="text" ref={inputRef} />
<button onClick={handleFocus}>활성화</button>
</>
);
}
export default CreateRef;
Ref는 DOM 요소를 직접 접근해야 하는 경우 사용 됩니다. 하지만 Ref는 최대한 사용을 줄이는 것이 좋습니다. Ref는 DOM에 직접 접근하기 때문에, 컴포넌트의 성능에 영향을 미칠 수 있기 때문입니다. 따라서 Ref를 사용할 때는 신중하게 고려해야 합니다.