useRef란 ?
useRef는 React Hook 중 하나로 컴포넌트의 DOM 요소나 변수에 대한 참조를 저장할 수 있는 방법입니다.
useState와는 다르게 렌더링을 발생시키지 않고도 값을 유지할 수 있습니다.
useRef의 주요 용도
DOM 요소에 접근
- 주로 HTML 요소에 접근하여 포커스를 주거나 스크롤을 제어하거나 입력 필드의 값에 접근하는 등의 작업을 할 때 사용됩니다.
렌더링 간 값 유지
- state를 업데이트할 때는 컴포넌트가 재 렌더링 되지만 useref는 렌더링을 발생시키지 않고 값을 유지함
useRef 사용 예시 (DOM 요소에 접근)
입력 필드에 포커스주기
해당 버튼을 누르면 ref.current.focus()가 호출되어 입력 필드에 포커스 자동 설정
useRef로 렌더링 없이 값 관리하기
ref.current++ 은 값이 증가해도 렌더링이 발생하지 않고 값이 계속 유지됩니다.
그리고 count는 useState로 관리되기 때문에 값이 변경될 때마다 컴포넌트가 재 렌더링 됩니다.
useRef의 특징 정리
- 렌더링 사이에서 값 유지 : useRef로 참조된 값은 컴포넌트가 재렌더링될 때도 값이 초기화 되지않고 유지됩니다.
- 렌더링을 발생시키지 않음 : useState와 달리 useRef 값이 변경되더라도 컴포넌트가 다시 렌더링되지 않습니다.
- DOM 요소에 접근하기 : HTML 요소에 직접적으로 접근해 포커스 , 스크롤 조작 등을 쉽게 할 수 있습니다.
useRef는 언제 사용하는지?
1. DOM 요소에 직접 접근해야 할 때
- 입력 필드에 자동으로 포커스를 주거나 특정 DOM 요소의 스크롤 위치를 조작해야 할 때 useRef 를 사용
2. 렌더링 간 값 유지가 필요할 때
- 렌더링을 발생시키지 않고 변수처럼 값을 저장하고 싶을 때 useRef를 사용하면 효과적입니다.
3. 상태 업데이트로 인한 불필요한 렌더링을 피하고 싶을 때
- 상태를 업데이트 하지 않고도 값을 유지해야 하는 상황에서 useRef를 사용하여 성능을 최적화할 수 있습니다.
'Front-end > React' 카테고리의 다른 글
React Router (0) | 2024.10.03 |
---|---|
React 와 Node 연결 (4) | 2024.10.01 |
React 상태 관리 : 함수형 업데이트 vs 직접 참조 (안전한 상태 업데이트 방법) (1) | 2024.09.29 |
리액트 훅 useEffect (2) | 2024.09.26 |
리액트 훅 useState (0) | 2024.09.26 |