컴포넌트 내에서 변경 가능한 값을 저장하고 관리할 수 있게 해줌
DOM 요소에 접근, 값을 유지하면서 렌더링을 트리거하지 않기 위해 사용
const inputRef = useRef(null);
useEffect(()=> {
inputRef.current.focus(); // 컴포넌트 마운트 시 input에 포커스를 맞춘다.
}, []);
return <input ref={inputRef} />;
const timerRef = useRef(null);
const startTimer = () => {
timerRef.current = setInterval(() => {
console.log('타이머 실행')
}, 1000);
};
const stopTimer = () => {
clearInterval(timerRef.current); // 타이머를 정지한다.
};
위 예시에서 useRef()를 이용해 타이머 아이디 추적하면서도 해당 상태 값이 업데이트 될 때 컴포넌트 리렌더링 하지 않음