import { useState } from "react";
function Counter() {
const [count, setCount] = useState(0);
return (
<div>
<p>현재 카운트: {count}</p>
<button onClick={() => setCount(count + 1)}>+1</button>
</div>
);
}
count : 현재 상태 값setCount : 상태를 변경하는 함수0 : 초기값setCount는 기억을 새로 덮어쓰는 도구React에서 이벤트를 다루는 방법은 일반 JS와 조금 다르다.
- HTML
<button>클릭</button>- React
<button onClick={handleClick}>클릭</button>
문자열이 아닌 함수 참조 를 전달해야 한다.
function Counter() {
const [count, setCount] = useState(0);
const handleClick = () => {
setCount(count + 1);
};
return (
<div>
<p>현재 카운트: {count}</p>
<button onClick={handleClick}>+1</button>
</div>
);
}
대표적으로 두가지가 있다.
<button onClick={handleClick()}>잘못된 예시 ❌</button>
이 방식은 화면이 렌더링 되자마자 함수가 실행된다.
<button onClick={handleClick}>올바른 예시 ✅</button>
React의 상태 업데이트는 비동기적으로 처리된다.
이전 값 을 기반으로 업데이트 될 때는 함수형 업데이트를 쓰는게 안전하다.
setCount(prev => prev + 1);
useState는 컴포넌트 안에서 변하는 값을 기억하게 해줌 (유지관리 가능)