
useState hook은 React 모듈 내부의 렉시컬 환경에 상태를 저장한다.setState 함수가 클로저를 통해 그 내부 상태 값을 접근하고 업데이트하기 때문에 렌더링 사이에도 값이 안전하게 유지된다.useEffect의 의존성 배열에 해당 상태를 추가하거나, setState의 함수형 업데이트 방식을 이용하여 최신 상태를 직접 참조하도록 하여 해결이 가능하다.클로저란 함수와 함수가 선언된 어휘적 환경의 조합으로, 함수가 속한 렉시컬 스코프를 기억하여 해당 스코프 밖에서 실행되더라도 그 스코프에 접근할 수 있게 하는 기능입니다. 일반적으로 함수는 실행이 끝나면 가비지 컬렉터에 의해 메모리에서 제거되지만, 내부 함수가 참조하는 변수는 렉시컬 환경에 남겨두기 때문에 클로저가 가능합니다. React에서도 이 클로저 개념이 핵심적으로 활용되는데, 함수형 컴포넌트는 매 렌더링마다 실행이 종료되지만
useState가 React 모듈 내부의 렉시컬 환경에 상태를 저장하고, 반환된setState함수가 클로저를 통해 그 상태에 접근하기 때문에 값이 유지됩니다. 다만 비동기 콜백이 생성 당시의 렉시컬 환경을 기억하여 최신 상태를 반영하지 못하는 오래된 클로저 문제가 발생할 수 있으며, 이는useEffect의 의존성 배열 추가나setState의 함수형 업데이트 방식으로 해결할 수 있습니다.
댓글을 작성하려면 로그인이 필요합니다.
아직 작성된 댓글이 없어요. 첫 댓글을 남겨주세요!