인프런 커뮤니티 질문&답변
useEffect 를 쓰고 안쓰고의 차이
작성
·
303
0
리액트 무료강좌도 다 듣고 본 강좌를 듣고있는건데도 아직까지 useEffect 에 대한 이해가 쉽게 되지 않네요ㅜ
1. useEffect 를 쓰는 이유가 컴포넌트의 라이프싸이클을 다를 수 있는것, 그리고 리렌더링 될 때마다 함수가 불필요하게 실행되는걸 막기위해 [] 안의 dependency 값이 바뀔 때만 실행되도록 할 수 있어서가 맞을까요?
수정) 계속 공부해보니 함수 컴포넌트에서 return 구문 밖에서의 함수 실행은 거의 모두 useEffect 내에 작성한다고 되어있는데 그럼
if (!me) {
return null;
}
이부분은 왜 useEffect 로 감싸지 않았나요? 용량이 크지 않아서 그런걸까요?
2. 어차피 로그인의 여부인데 굳이 me.id 가 아닌 me 의 여부로 넣어되지 않나요? 동작은 똑같이 합니다.
답변 1
1
제로초(조현영)
지식공유자
1. 저 상황에서는 useEffect가 필요없긴 하네요. 다만 좀 특수한 경우입니다.
2. 네 deps배열에 넣은 값에 대한 라이프싸이클이 주 목적입니다.
3. deps 배열에객체를 넣는 것은 매우 안 좋은 습관입니다. 참조문제 때문에요.





이해됐습니다 감사합니다!!