이번에는 useRef를 사용해서 컴포넌트 안의 변수를 만드는 방법을 알아보자.
여기서 말하는 변수는 예를 들어 컴포넌트 안에서 'let' 키워드를 사용해서 어떤 변수를 선언한다고 가정해보자.
이렇게 변수를 선언하면 다음 리 렌더링 될 때 그 변수 값은 초기화된다. 만약 계속 유지하고 싶은 값을 관리하려고 하면
이전에 공부했던 useState를 사용해야 하는데 useState 같은 경우는 상태를 바꾸게 되면 컴포넌트가 리 렌더링 된다.
하지만 우리는 가끔씩 어떤 값을 바꾸었을 때 굳이 리 렌더링 할 필요 없는 값을 관리하게 될 때도 있다.
그런 경우에는 useRef를 사용하면 된다. useRef는 이전에 우리가 특정 DOM을 선택해야 될 때 useRef라는 Hook을
사용한다고 공부했다. 이것외에도 컴포넌트가 리 렌더링 될 때마다 계속 기억할 수 있는 값을 관리해야 할 때에도
사용할 수가 있다.
주로 setTimeout, setInterval를 사용했을 때 주어지는 id의 값을 기억해야 될 때, 외부 라이브러리를 사용하여 생성 된
인스턴스를 담을 때, Scroll 위치를 알고 있어야 할 때 사용할 수 있다.
알아두어야 하는 것은 useRef로 관리하는 값은 바뀌어도 컴포넌트가 리 렌더링 되지 않는다는 점이다.
const nextId = useRef(4);
const onCreate = () => {
console.log(nextId.current);
nextId.current += 1;
}
배열의 고유 id 값을 관리하기 위해 useRef를 사용하는 예시이다.
useRef()를 이용해서 nextId 변수를 4로 선언했다. nextId.current += 1 처럼 값을 바꿔주더라도 컴포넌트가 리 렌더링
되지 않는다.
'React.js' 카테고리의 다른 글
React(리액트): useEffect(마운트, 언마운트 업데이트시 할 작업 설정) (0) | 2021.07.29 |
---|---|
React(리액트): 배열 항목 추가, 제거, 수정 (1) | 2021.07.26 |
React(리액트): 배열 렌더링, key 사용 (0) | 2021.07.26 |
React(리액트): useRef로 특정 DOM 선택하기 (0) | 2021.07.23 |
React(리액트): input 상태 관리하기, input 여러 개 (0) | 2021.07.23 |