useRef()
1. 언제 사용할까?
useRef()는 실제 DOM 노드를 참조 하여 참조 대상을 변경할 때 사용한다..current속성에 참조된 요소가 담겨있기 때문에 이 속성을 사용해서 요소에 접근하면 된다.이전의 상태 값을 기억하여 이전 값과 이후 값을 비교할 때 사용한다. →JS의 클로저 기능을 리액트에서 사용하고 싶을 때 사용한다.
2. 용도
2.1 상태를 기억
useRef()는 .current 속성에 변경 가능한 값을 담고 있는 “상자”와 같다.
const refContainer = useRef(initialValue);
위의 이미지 코드는 이해를 돕기 위한 이미지이다. 실제로 작동하지 않는다.
2.2 DOM 객체 참조
예를 들어서 아래의 코드 처럼 이미 마운트 된 요소를 변경하고 싶은 경우 Ref 참조를 사용해서 변경한다.
3. useState vs useRef
구분
설명
useState
이전 상태를 기억한다.
상태가 업데이트 되면 컴포넌트를 다시 렌더링한다.
즉, 이전 값을 기억하고 상태 업데이트도 필요할 때 사용한다.
예) count와 같이 상태가 계속 업데이트 되어 리렌더링이 필요할 때 사용
useRef
이전 상태를 기억한다.
상태가 업데이트 된다고 해도 컴포넌트를 다시 렌더링 하지 않는다.
이전 값을 기억하고 싶지만 업데이트는 필요하지 않을 때 사용한다.
예) 아코디언의 open/close와 같이 이전 상태를 기억해야 하지만 업데이트는 필요하지 않을 때 사용.
Last updated
Was this helpful?