React useState 초기값에 함수 안 쓰면 매 렌더마다 계산된다
페이지 정보

영삼이
본문
✅ useState
초기값에 함수 안 쓰면 매 렌더마다 계산된다
무거운 연산은 꼭 지연 평가로 감싸라
useState
의 초기값에 연산이 들어가면
컴포넌트가 리렌더링될 때마다 실행된다:
const [data] = useState(expensiveCompute()); // ❌ 렌더마다 계산됨
✅ 해결: 함수로 감싸서 지연 평가하기
const [data] = useState(() => expensiveCompute()); // ✅ 최초 한 번만 실행
-
useState(() => ...)
는 초기 렌더에서만 실행 -
이후에는 무시됨
-
초기 데이터가 클수록 렌더링 성능에 큰 차이 발생
✔️ 리소스 많이 쓰는 계산이라면
무조건 함수로 감싸서 초기화하라.
이건 고수의 기본 습관이다.
- 이전글useEffect 안에서 직접 async 함수 만들면 안 되는 이유 25.03.28
- 다음글onChange에서 바로 setState 하지 마라 25.03.28
댓글목록
등록된 댓글이 없습니다.