리액트에서 HTML 요소에 접근하거나, 컴포넌트의 렌더링에 영향없이 값을 유지하고 싶을 때 사용하는 훅.
const idRef = useRef(0);
괄호 안에는 객체의 초기 값을 넣는다.
1. let으로 선언한 변수
let id = 1;
함수 안에서 변수를 선언했을 경우에는 함수가 호출될 때마다 변수의 값이 초기화되며, 컴포넌트가 리렌더링될 때에도 변수의 값이 초기화된다. 정리하면, 변수 id의 상태를 유지하지 않는다.
2. useRef를 활용해 선언한 변수
const idRef = useRef(0);
이 변수는 useRef를 활용하여 초기화되었기 때문에, 리렌더링이 발생해도 idRef.current
값은 초기화되지 않고 유지된다. 이는 해당 값이나 DOM을 지속적으로 참조할 때 매우 유용하다.
➰ 장점
➰ 단점
useState
를 사용해야 함❗️