SwiftUI의 경우는 @State를 통해서 뷰의 상태를 관리할 수 있다. @State를 통해서 정의된 변수는 프레임워크가 별도로 관리하기 때문에 뷰가 리랜더에 영향을 받지 않는다. 그리고 해당 변수의 값이 변경되면 뷰가 리랜더링된다.
useState도 동일한 개념이다. useState를 사용하면 getter와 setter 함수를 리턴 받는다.
setter 함수의 특이한 점은 단순하게 새로운 값을 입력해도 되지만 아래 예시처럼 이전의 값을 입력 받아 다음 값을 리턴하는 함수를 전달해도 된다.
function UseState() {
const [num, setNum] = useState(0);
const handleClick = () => {
setNum((prev) => prev + 1);
};
return (
<>
<p>{num}</p>
<button onClick={handleClick}>더하기</button>;
</>
);
}