본문 바로가기
개발공부/React

[리액트] useState

by zing! 2025. 3. 10.
 

[리액트] State

state란?state(상태) 는 리액트 컴포넌트에서 변경 가능한 데이터를 관리하는 객체다.컴포넌트의 state가 변경되면 해당 컴포넌트가 자동으로 리렌더링된다. 💡 리렌더링( rerendering ) state나 props가

zing829.tistory.com

 

useState는 상태를 관리하는 훅이며, state는 useState를 통해 관리되는 실제 데이터다.


useState

리액트에서 상태(state)를 관리하는 데 사용하는 훅(Hook)으로, 함수형 컴포넌트에서 상태를 추가할 수 있게 해준다.

 

초기 상태 값을 인자로 받으며, 배열을 반환한다.
배열의 첫 번째 요소는 현재 상태 값이고, 두 번째 요소는 상태를 업데이트하는 함수다.

const [state, setState] = useState(initialValue);

 

  • state: 현재 상태 값.
  • setState: 상태 값을 변경하는 함수.
  • initialValue: state의 초기 값.

상태 변수 : 첫번째 요소

  • useState에서 반환하는 첫 번째 값은 현재 상태 값으로, 상태 값은 컴포넌트의 렌더링마다 최신 상태를 반영한다.
  • 컴포넌트가 다시 렌더링될 때, state 값은 계속 업데이트된 상태로 유지되고, 상태가 변경되면 리액트는 컴포넌트를 다시 렌더링하며, 그때 상태 값도 최신으로 반영된다.

상태 업데이트 함수 : 두번째 요소

  • useState의 두 번째 값은 상태를 변경하는 함수로, 상태 값을 업데이트할 때 사용된다.
  • 이 함수는 상태가 변경되면 컴포넌트를 다시 렌더링하게 만든다.

useState의 초기 값

  • useState에 전달하는 초기 값은 컴포넌트가 처음 렌더링될 때만 사용된다.
  • 이후 상태가 업데이트되면, 초기 값은 더 이상 사용되지 않는다.

상태 업데이트는 비동기적이다

상태를 업데이트하는 setState는 비동기적으로 처리된다.

즉, 상태가 업데이트되면 바로 그 값이 반영되지 않고, 다음 렌더링 주기에서 상태가 반영된다.

함수형 업데이트

여러 번 상태를 업데이트할 때, 이전 상태를 기반으로 새로운 값을 계산하는 함수형 업데이트 방식이 유용하다.

setState에 함수 형태로 전달하면, 상태 변경을 정확하게 반영할 수 있다.

const [count, setCount] = useState(0);

const increment = () => {
  setCount(prevCount => prevCount + 1); // 이전 값을 기반으로 상태를 변경한다.
};

상태 값이 객체나 배열일 때

상태 값이 객체나 배열일 경우, 불변성을 지켜야 한다. 객체나 배열을 직접 수정하면 리액트가 이를 감지하지 못하므로, 새로운 객체나 배열을 생성해서 상태를 업데이트해야 한다.

 

'개발공부 > React' 카테고리의 다른 글

파라미터(Parameter)  (0) 2025.04.05
[리액트] react-router-dom  (0) 2025.03.19
[리액트] State  (0) 2025.03.10
[리액트] props  (0) 2025.03.07
[리액트] Component  (0) 2025.03.07