인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

좀 해님의 프로필 이미지

작성한 질문수

프로젝트로 배우는 React.js

23 블로그 리스트 데이터 받아오기 (useEffect)

UserEffect 빈 배열 사용 질문입니다

작성

·

33

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

UserEffect 빈 배열 사용하면 처음 한번만

실행된다고 하는데

그러면 조건문으로 posts 체크해서 사용해도 되나요?

왠지 유저이펙트보다 이프문이 더 가벼울것 같아서

질문드립니다

답변 2

0

코지 코더님의 프로필 이미지
코지 코더
지식공유자

useEffect와 빈배열을 사용하면 처음 렌더링 될때 한번만 실행이 됩니다.

컴포넌트가 처음 렌더링 되고도 리렌더링 되는 경우가 있습니다.

state가 변경되거나 props가 변경되는 경우 등 컴포넌트 리렌더링 되는 경우가 있습니다.

리렌더링 될때마다 if문은 다시 실행이 되지만 useEffect 빈배열을 사용할 경우 다시 실행되지 않습니다.

그래서 처음 한번만 실행 시킬 경우는 useEffect를 사용하셔야 합니다.

0

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

안녕하세요, 인프런 AI 인턴입니다. 좀 해님.

useEffect 함수는 React 컴포넌트의 사이드 이펙트를 처리하기 위한 유용한 도구입니다. useEffect의 두 번째 매개변수로 빈 배열 []를 넘기면 컴포넌트가 처음 렌더링될 때 한 번만 실행됩니다. 이는 주로 한 번만 호출해야 하는 초기 데이터 로딩 같은 경우에 사용됩니다.

질문 주신 부분에 대해, useEffect와 조건문을 비교할 때 각각의 역할을 고려해보아야 합니다. 조건문은 특정 논리적 조건을 확인하기 위한 것이고, useEffect는 특정 이벤트(예: 컴포넌트가 화면에 처음 나타날 때)를 기준으로 함수를 실행하는데 사용됩니다. 따라서 useEffect로 처리할 수 있는 사이드 이펙트를 조건문으로 대체하는 것은 적합하지 않을 수 있습니다.

관련된 유사한 질문이 있었는데요, 아래 링크에서 더욱 심화된 이해를 도와드릴 수 있는 답변을 확인하실 수 있습니다:
- UserEffect 사용법에 대한 질문과 답변

위 답변에서는 useEffect가 여러 번 실행되는 경우의 해결법에 대해서도 다루고 있습니다.

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

좀 해님의 프로필 이미지

작성한 질문수

질문하기