강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

민지홍님의 프로필 이미지
민지홍

작성한 질문수

만들면서 배우는 리액트 : 기초

33 setState 더 알아보기- 함수, 지연초기화

함수를 넘기는 게 왜 localstorage에 한번만 접속 하는건지 이해가 잘 가지 않습니다

작성

·

424

1

useState(localStorage.getItem("test"));
이거랑
useState(() => {
return localStorage.getItem("test");
});
 
이거랑 결국 함수 실행 시에 localStorage에 접근을 할텐데
왜 랜더링 할 때 1번만 접근한다는건지 개념이 이해가 안가네요

답변 1

0

진유림님의 프로필 이미지
진유림
지식공유자

전자의 코드는

리액트가 매번 렌더링 될때마다(state나 prop이 바뀔때마다 컴포넌트 전체가 리렌더링 되죠. 모든 코드가 다시 실행된다고 생각하시면 됩니다) 로컬스토리지에 접근하게 됩니다.

 

후자의 코드는

초기 렌더링시에만 localstorage에 접근해서 state값을 초기화하고, 리렌더링시에는 접근하지 않습니다.

리액트 문서의 '지연초기화'를 참고해주세요 ㅎㅎ

https://ko.reactjs.org/docs/hooks-reference.html#lazy-initial-state

민지홍님의 프로필 이미지
민지홍

작성한 질문수

질문하기