반응형
로컬 상태 관리 (useState, useReducer)
React에서 가장 기본적인 상태 관리 방식은 바로 로컬 상태(Local State)
컴포넌트 내부에서만 사용하는 간단한 상태를 관리할 때 사용함
로컬 상태란?
로컬 상태는 오직 컴포넌트 내부에서만 사용하는 상태
다른 컴포넌트와 공유할 필요 없는 값들을 관리할 때 적합함
예를 들어
- 모달의 열림/닫힘 상태
- 입력창 값
- 버튼 클릭 여부
- 간단한 카운트
이런 것들이 모두 로컬 상태에 해당
1. useState – 가장 기본적인 상태 관리
import React, { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0);
return (
<div>
<p>현재 카운트: {count}</p>
<button onClick={() => setCount(count + 1)}>+1</button>
</div>
);
}
설명
useState(초기값)으로 상태를 선언하고 배열 구조 [상태값, 변경함수]를 받아
setCount로 상태를 바꾸면 컴포넌트가 자동으로 다시 렌더링됨!
2. useReducer – 복잡한 상태 관리에 적합
상태 종류가 여러 개이거나, 조건 분기 로직이 복잡한 경우에는 useReducer가 좋아요~
import React, { useReducer } from 'react';
const initialState = { count: 0 };
function reducer(state, action) {
switch (action.type) {
case 'increment':
return { count: state.count + 1 };
case 'decrement':
return { count: state.count - 1 };
default:
return state;
}
}
function Counter() {
const [state, dispatch] = useReducer(reducer, initialState);
return (
<div>
<p>카운트: {state.count}</p>
<button onClick={() => dispatch({ type: 'increment' })}>+1</button>
<button onClick={() => dispatch({ type: 'decrement' })}>-1</button>
</div>
);
}
설명
useReducer는 상태 로직을 reducer 함수로 분리할 수 있어서, 업데이트 조건이 많을 때 코드를 더 깔끔하게 유지할 수 있음!
useState vs useReducer
- 단순한 토글, 숫자 변경, 입력 값 추적 → useState
- 저는 보통 서버에서 받은 데이터를 간단하게 여기서 관리하기도 했었습니당
- 복잡한 상태 전이, 조건 분기, 여러 상태 관리 → useReducer
반응형
'프론트엔드 > React' 카테고리의 다른 글
| (React) 리액트란? (0) | 2025.11.16 |
|---|---|
| (React) 전역 상태 관리 (0) | 2025.05.11 |
| (React) 상태관리 설명 (0) | 2025.05.07 |
| (React) 기본 구조 SPA (0) | 2025.05.07 |
| (React) 프로젝트 생성 및 시작 (0) | 2025.05.06 |