React useRef hook 사용하기
useRef는 렌더링이 될 필요 없는 값을 참조하기 위한 리액트 훅이다.
사용법
1 | const ref = useRef(initialValue) |
useRef는 current라는 한 개의 프로퍼티를 가지는 ref object를 반환한다. 초기 값은 initialValue 값이 된다. 값을 저장하고 있다는 점에서 useState와 비슷하게 느껴지지만 useState와 다르게 useRef는 current 프로퍼티를 수정하여 값을 바꿀 수 있다. (useState는 setValue 함수를 사용해야 값을 수정할 수 있음)
ref는 단순 JavaScript object로 리액트는 값이 수정되었는지 어떤지 알 지 못한다. 그래서 ref.current 값이 바뀌어도 리액트는 화면을 re-render 하지 않는다.
사용 예
1 | import { useRef } from 'react'; |
주의할 점
렌더링이 발생하지 않기 때문에 화면에 실시간으로 수정사항이 표시되는 값을 저장할 때 사용하기에는 부적합하다. 하지만 그렇다고 그 값을 화면에 나타내지 않아야 하는 것은 아니다.
1 | import { useRef } from 'react'; |
이런 경우 ref가 이벤트 핸들러 내부에서만 read/write 되기 때문에 사용하는 데 문제가 없다. 일반 JavaScript 변수를 사용하는 경우 화면이 렌더링 될 때 변수가 재정의 된다는 점이 둘의 차이점이다.
렌더링 없이 상태 값을 저장할 때에는 useRef를, 실시간으로 변경되는 상태를 나타내기 위해서는 useState를, 단순 로직 계산에 사용하기 위해서는 일반 JS 변수를 사용하면 된다.
참고
이 블로그의 모든 글은 CC BY-NC-SA 4.0 라이선스를 따르며, 별도로 명시되지 않는 한 모든 권리를 보유합니다. 재배포 시 출처를 명시해 주세요: StudyYeong.