ReactJS

ReactJS (15) Ref

오리888 2023. 3. 10. 03:05

 

ref는 component를 통해서 HTML element를 가져올 수 있다

예: video.play() , a.click() 

이렇게 video , anchor HTML element를 갖고 와 작업을 하는 거라고 보면 된다

 

하지만 HTML element를 갖고 올 때마다 사용하는 건 아니고 DOM에 직접 접근해야 할 때만 ref를 사용한다

직접 접근해야 되는 경우는 state로 처리하기 힘들거나 다른 method 방법이 따로 없을 때 쓴다

 

예: 특정 input에 focus 주기, 스크롤 박스 조작, Canvas 요소에 그림 그리기, 애니메이션, 3자 DOM library 활용

추가로 component에 이미 제공되고 있는 prop들을 활용해야 한다

예: Dialog component에서 isOpen prop을 씀

 

 

 

useRef hook은 ref를 사용하여 element를 제어하게 되는데 

state와 다른 점은 리렌더링이 안된다는 점이다

이렇게 되면 불필요한 리렌더링을 없앨 수 있기 때문에 

웹페이지 속도가 빨라짐으로

상황에 따라 useRef를 사용해야 한다

 

그럼 마지막으로 useRef를 사용해 보고 마무리하자

 

예)

 

useRef(.current의 기본값)

예시에서는 버튼을 누르면 input에 focus 되는 작업을 해보았다

input에 ref={ref} 를 줌으로써 useRef()로 인해 input HTML element를 갖고 와서 event를 발동시킨 걸 볼 수 있다

useRef()의 좋은 점은 버튼을 클릭했을 경우 다른 component들이 리렌더링이 되지 않는다는 점이다