useRef는 두 가지 방식으로 쓰인다.

1) 특정 DOM을 선택할 때

2) 값이 바뀌어도 컴포넌트를 리렌더링 할 필요 없을 때, 그러한 상태들을 생성

useRef를 사용하려면 코드 맨 윗줄에 import React, { useRef } from 'react' ; 를 추가해야 한다.

 

1) 특정 DOM을 선택할 때.

Counter라는 함수 컴포넌트가 있고 이 컴포넌트는 특정 div의 text를 가져와서 1씩 증가시키는 역할이다.

아래와 같이 컴포넌트 안에 useRef를 이용해 변수를 생성하고,

function Counter (props) {

  const count = useRef(); 

}

 

선택을 원하는 DOM 안에서는 ref={변수명} 을 추가해준다.

<div ref={count}>0</div>

 

값의 변경을 원하는 함수 안에서는 변수명.current 다음에 원하는 행위를 작성한다.

function Counter (props) {

  const counter = useRef();

 

  const onIncrease = () => {

    count.current.innerText = parseInt(count.current.innerText) + 1;

  }

}

 

 

2) 값이 바뀌어도 컴포넌트를 리렌더링 할 필요 없을 때

useState로 상태 값 A가 생성되면 이 A가 바뀔 때마다 컴포넌트가 리렌더링되는데,

굳이 상태가 바뀌어도 컴포넌트를 리렌더링할 필요 없을 때가 있을 것이다.

그럴 때 사용하는 것이 useRef이다. 

count 값이 바뀌어도 그냥 내부에 가지고 있을 뿐 컴포넌트를 리렌더링 할 필요는 없다고 해보자. (사용자에게 보여줄 필요가 없을 때?)

 

function Counter (props) {

  const count = useRef(0);  // 0은 초기값

 

  const onCreate = () => {

    const.current += 1;
  }

}

 

1)과 마찬가지로 변수명.current 에 값을 작성해주면 된다.

'프론트엔드 > React' 카테고리의 다른 글

useReducer  (0) 2021.09.14
React.memo  (0) 2021.09.12
useCallback  (0) 2021.09.06
useMemo  (0) 2021.09.06
useEffect  (0) 2021.09.03

+ Recent posts