useState 기본 사용법과 예제
버튼을 눌렀을 때 화면의 숫자나 문구가 바뀌게 만들고 싶은 상황
- 문제 상황 확인
- 짧은 코드로 재현
- 브라우저에서 결과 점검
useState 기본 사용법과 예제에서 먼저 볼 부분
useState는 React 컴포넌트가 값을 기억하고, 값이 바뀌면 화면을 다시 그리게 해주는 Hook입니다.
useState는 현재 값과 값을 바꾸는 함수를 배열 형태로 돌려줍니다. 보통 구조 분해 문법으로 [value, setValue] 형태를 만듭니다.
값을 직접 바꾸면 React가 변화를 모를 수 있습니다. 반드시 setter 함수를 통해 상태를 변경해야 화면이 갱신됩니다.
카운터 예제는 단순하지만 입력값, 탭, 모달 열림 여부처럼 많은 UI 상태를 이해하는 출발점이 됩니다.
카운터 만들기
function Counter() {
const [count, setCount] = React.useState(0);
return (
<button onClick={() => setCount(count + 1)}>
{count}번 클릭
</button>
);
}
이 예제는 그대로 복사해서 확인하는 것보다 한 줄씩 바꿔보는 쪽이 더 도움이 됩니다. 태그 이름, 선택자, 변수 이름, 함수 실행 위치를 조금씩 바꾸면 어떤 부분이 결과에 영향을 주는지 직접 확인할 수 있습니다.
잘못 작성했을 때 나타나는 흐름
React 글은 화면 조각, 데이터 흐름, 상태 변경 시점을 나누어 읽으면 헷갈림이 줄어듭니다.
값이 부모에서 내려오는지, 컴포넌트 내부에서 바뀌는지 구분하면 props와 state 관련 오류를 훨씬 빨리 찾을 수 있습니다.
작은 예제라도 렌더링 전후에 화면이 왜 바뀌는지 설명할 수 있어야 다음 단계의 Hook을 이해하기 쉽습니다.
브라우저에서 직접 확인하는 순서
먼저 화면에 나타나는 결과를 보고, 그다음 코드에서 방금 수정한 부분을 확인하세요. 결과가 예상과 다르다면 콘솔 오류, 파일 경로, 선택자 이름, 태그 닫힘, 실행 순서 중 하나가 흔한 원인입니다.
초보 단계에서는 정답 코드를 한 번에 외우기보다 실패한 코드와 수정한 코드를 나란히 비교하는 방식이 좋습니다. 이 글의 예제를 기준으로 작은 값을 바꿔보면 다음 글을 읽을 때도 기준이 더 선명해집니다.
실습 후 점검할 항목
- 초기값이 어떤 타입인지 정하기
- 상태 이름과 setter 이름을 짝으로 만들기
- 상태를 직접 수정하지 않기
- 이전 값 기준 업데이트가 필요한지 확인하기
공식 문서로 더 확인하기: React 공식 문서