면접준비

useRef가 필요한 상황

BigSik 2023. 7. 27. 13:43

useRef는 useState와 비슷하지만, useState는 상태가 변경될 때마다 컴포넌트를 리렌더링하지만, useRef는 값이 변경되더라도 컴포넌트를 리렌더링하지 않습니다. useRef는 DOM 요소에 대한 참조를 얻거나, 시간이 지나도 변경되지 않는 값을 저장할 때 유용합니다.

import React, { useRef } from "react";

function App() {
  const counterRef = useRef(0);

  return (
    <div>
      <p>현재 카운트: {counterRef.current}</p>
      <button onClick={() => {
        counterRef.current++;
      }}>카운트 증가</button>
    </div>
  );
}

export default App;

inputRef는 DOM 요소에 대한 참조를 저장합니다. inputRef.current를 사용하여 DOM 요소에 직접 접근할 수 있습니다. 또한, useRef를 사용하여 시간이 지나도 변경되지 않는 값을 저장할 수 있습니다.

 

Q: useRef 대신 useState를 사용할 경우 어떤 문제가 발생할 수 있나요?
A: useState는 상태가 변경될 때마다 컴포넌트를 리렌더링합니다. 시간이 지나도 변경되지 않는 값을 저장하는 경우나, DOM 요소에 접근하는 경우에 useState를 사용하면 필요하지 않은 리렌더링이 발생할 수 있습니다. 이런 상황에서는 useRef를 적합합니다.