React에서 변수 대신 useState를 사용해야 하는 이유

React에서 변수 대신 useState를 사용해야 하는 이유
It SharingPosted On Jul 30, 20242 min read

React에서 단순 변수 대신 useState를 사용하는 이유

React에서 왜 useState를 사용하는지 궁금한 적이 있나요? 간단한 카운터 예제를 통해 이 개념을 살펴보겠습니다.

간단한 카운터 예제

두 개의 버튼(1을 증가시키는 버튼, 1을 감소시키는 버튼)이 있는 기본 카운터가 있다고 상상해보세요. useState를 사용하여 이 카운터를 생성하면 완벽하게 작동합니다. 그러나 일반 변수를 사용하려고 시도하면 예상대로 작동하지 않습니다.

import React, { useState } from 'react';

function Counter() {
  // useState를 사용하여 상태 변수 생성
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>Increase</button>
      <button onClick={() => setCount(count - 1)}>Decrease</button>
    </div>
  );
}

export default Counter;

useState란 무엇인가요?

useState는 React에서 함수형 컴포넌트에 상태를 추가할 수 있게 해주는 훅입니다. 상태는 컴포넌트가 사용하여 시간이 지남에 따라 기억하고 업데이트하는 메모리와 같습니다.

왜 변수가 제대로 작동하지 않을까요?

변수를 사용하는 것이 작동하지 않는 이유는 React가 useState로 관리되는 상태와 같이 일반 변수의 변경을 추적하지 않기 때문입니다. 증가 또는 감소 버튼을 클릭할 때 useState는 React에게 상태가 변경되었음을 알려줍니다. 그 후 React는 컴포넌트를 다시 렌더링하고 카운트를 업데이트합니다.

그러나 일반 변수를 사용하는 경우 React는 변경 사항을 인식하지 못하므로 카운트를 업데이트하지 않습니다.

import React from 'react';

function Counter() {
  // 일반 변수 사용
  let count = 0;

  const increase = () => {
    count += 1;
  };

  const decrease = () => {
    count -= 1;
  };

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={increase}>Increase</button>
      <button onClick={decrease}>Decrease</button>
    </div>
  );
}

export default Counter;

결론

제가 useState가 React에서 상태 관리에 얼마나 중요한지 이해했기를 바랍니다. 이를 통해 React가 변경 사항을 추적하고 컴포넌트를 업데이트할 수 있도록 합니다. 시간 내 주셔서 감사합니다. 곧 다시 만나요!