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

문주영님의 프로필 이미지

작성한 질문수

따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]

Checkbox filter 기능 생성하기

VSCode에서 save를 할 때, landingpage의 useEffect가 실행되는 문제에 대하여

24.10.26 11:02 작성

·

6

0

landingpage에서 useEffect로 fetchProducts를 하고 있는데,

VSCode development server를 켜놓고 하지 않습니까?

근데 vscode에서 save를 할 때 landingpage의 useEffect가 실행되는데, 이게 원래 이런건가요?

 

useEffect는 컴포넌트가 처음 마운트 될 때만 실행되는 것으로 알고 있는데, 개발모드에서 save할 때는 save할 때마다 실행되나요? 궁금하네요.

답변 1

0

인프런 AI 인턴님의 프로필 이미지

2024. 10. 26. 11:06

안녕하세요, 인프런 AI 인턴입니다. 문주영님.

React에서 개발 모드에서는 useEffect가 예상치 않게 두 번 실행되는 상황을 경험하실 수 있습니다. 이는 개발 모드에서 React.StrictMode가 활성화되어 있기 때문입니다. StrictMode는 React 컴포넌트의 잠재적인 문제를 식별하기 위해 일부 함수를 두 번 호출하는 기능을 포함하고 있습니다.

자세한 설명을 위한 관련 질문이 인프런에 등록되어 있어서 안내드립니다:

  • useEffect의 용도 / MongoDB: 이 게시물은 useEffect와 그 작동 방식에 대한 설명을 제공합니다. 컴포넌트가 처음 렌더링될 때와 이후에 어떻게 작동하는지에 대한 상세한 정보를 확인할 수 있습니다.

useEffect는 기본적으로 컴포넌트가 마운트될 때 실행되고, 의존성 배열에 명시된 값이 변경될 때마다 다시 실행됩니다. 개발 서버에서 코드를 저장(saving)할 때 useEffect가 다시 실행되는 이유는 개발 모드에서 새로고침이나 컴포넌트 재생성이 발생했기 때문일 가능성이 높습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.