본문 바로가기
언어/React

[hooks] useRef

by 코딩맛집 2022. 11. 20.
const ref = useRef(value)

예시로, const ref = useRef("hi")에서 useRef를 부르면 ref오브젝트를 반환한다.

ref 오브젝트는 {current:"hi"} 이렇게 생겼다.

 

ref 오브젝트는 수정이 가능하기 때문에 언제든 우리가 원하는 값으로 바꿀 수 있다.

ref.current="hello" 이렇게 사용하면 된다.

 

반환된 ref 는 컴포넌트의 전 생애 주기를 통해 유지가 된다.

컴포넌트가 계속 렌더링되어도 언마운트되기 전까지는 값을 그대로 유지할 수 있다.

 

대표적으로 useRef 2가지 상황에 쓰인다.

 

1. state와 비슷하게 값을 저장하는 저장공간으로 사용된다.


 state의 변화 -> 렌더링 -> 컴포넌트 내부 변수들 초기화

(리렌더링이 되면 함수가 다시 불려져 내부 모든 변수들이 초기화된다.)

 

 Ref의 변화 -> No 렌더링 -> 변수들의 값이 유지됨

state대신 ref를 사용하면  불필요한 렌더링을 막을 수 있다. 변경시 렌더링을 발생시키지 말아야하는 값을 다룰 때 사용!

 

 

2. DOM 요소에 접근

 

예시로, Input 요소를 클릭하지 않아도 포커스를 주고 싶을 때 사용

로그인 화면이 보여졌을 때, 아이디를 넣는 input에 자동적으로 포커스가 되어 있으면 바로 아이디로 입력가능

Ref를 사용하면 손쉽게 이런 작업이 가능하다.

 

 

 

 

'언어 > React' 카테고리의 다른 글

[회원가입] 정규 표현식과 아이디 일치 불일치  (1) 2022.12.14
[hooks] useEffect  (0) 2022.11.18
[hooks] useState  (0) 2022.11.17