refs
는 React 컴포넌트에서 DOM 요소나 컴포넌트 인스턴스에 직접 접근할 수 있게 해주는 기능입니다. refs
는 주로 다음과 같은 경우에 사용됩니다:
1. DOM 요소에 접근: refs
를 사용하여 DOM 요소에 직접 접근할 수 있습니다. 예를 들어, 특정 DOM 요소의 값을 읽거나 변경해야 할 때 refs
를 사용할 수 있습니다.
2. 포커스 제어: 특정 입력 필드나 버튼 등에 포커스를 설정하거나 제거해야 할 때 refs
를 사용할 수 있습니다.
3. 외부 라이브러리와의 통합: 외부 라이브러리가 DOM 요소나 컴포넌트 인스턴스를 요구할 때, refs
를 사용하여 해당 요소나 인스턴스를 전달할 수 있습니다.
4. 애니메이션 및 측정: DOM 요소의 위치나 크기를 측정하거나, 애니메이션을 직접 제어해야 할 때 refs
를 사용할 수 있습니다.
refs
는 클래스형 컴포넌트와 함수형 컴포넌트에서 모두 사용할 수 있습니다. 그러나 함수형 컴포넌트에서는 useRef
훅을 사용하여 refs
를 생성합니다.
다음은 refs
를 사용하여 DOM 요소에 접근하는 예시입니다:
import React, { useRef } from 'react';
function MyComponent() {
const inputRef = useRef(null);
const handleButtonClick = () => {
// input 요소에 접근하여 값을 가져옵니다.
const value = inputRef.current.value;
console.log(value);
};
return (
<div>
<input type="text" ref={inputRef} />
<button onClick={handleButtonClick}>값 가져오기</button>
</div>
);
}
위의 예시에서 useRef
훅을 사용하여 inputRef
를 생성하고, input
요소에 ref={inputRef}
를 설정하여 inputRef
와 해당 DOM 요소를 연결합니다. handleButtonClick
함수에서 inputRef.current.value
를 사용하여 input
요소의 값을 가져올 수 있습니다.
refs
는 주로 위와 같은 상황에서 사용되지만, React의 설계 원칙에 따라 refs
를 사용하기 전에 컴포넌트의 상태(state) 또는 속성(props)을 활용할 수 있는지 고려해야 합니다. 대부분의 경우 refs
는 필요한 경우에만 사용되어야 하며, React의 가상 DOM(Virtual DOM) 및 상태 관리 기능을 활용하여 데이터를 처리하는 것이 권장됩니다.