강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của devmingyo9794
devmingyo9794

câu hỏi đã được viết

[React Phần 2] Các chủ đề nâng cao và Hook

[Chương 3.6 Sử dụng hook 2] 3.6.1 Myrouter: Router

useEffect 의존성 질문

Viết

·

33

1

부수 효과로 popstate event listener를 등록하는 부분에서

useEffect의 의존성 배열에 path값을 넣어주셨는데, 안 넣는게 맞는 거 아닌가요?

javascriptreact웹앱React-Contextreact-hooks

Câu trả lời 2

1

jeonghwan님의 프로필 이미지
jeonghwan
Người chia sẻ kiến thức

안녕하세요 dev.mingyo님. 영상에서 useEffect 의존성 배열에 path 를 넣은 것에 대해 질문 주셨네요.

결론부터 말씀드리면, 안 넣는 것이 맞습니다. 부수 효과는 "popstate" 이벤트 핸들러를 등록하는 역할이고요. path는 history 객체에 전달하는 용도로 사용되는데요, 마운트 시점의 값으로도 충분해서 한 번만 실행되어도 됩니다. 오히려 path를 의존성으로 전달하게되면 path 변경에 따라서 이벤트 등록/해지 과정이 불필요하게 반복되는 낭비가 있긴해요.

영상에서는 놓쳤지만, 실습 코드에서는 의존성이 없는 점도 참고해 주시면 수업을 따라오시는 데 덜 헷갈리실 것 같습니다.

 

devmingyo9794님의 프로필 이미지
devmingyo9794
Người đặt câu hỏi

감사합니다

0

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

useEffect의 의존성 배열에 대한 질문을 주셨군요. popstate 이벤트 리스너와 관련하여, useEffect의 의존성 배열 설정은 중요한 부분입니다.

useEffect는 컴포넌트가 렌더될 때마다 특정 작업(부수효과)를 수행할 수 있도록 해주며, 의존성 배열은 해당 작업을 언제 다시 수행할지 결정합니다. 의존성 배열에 path 값을 넣는 이유는, path 값이 변경될 때마다 useEffect 내부의 부수 효과가 재실행되어야 하기 때문입니다. 즉, path가 변경되면 popstate 이벤트 리스너도 다시 등록되어야 하는 시나리오에서는 path를 의존성 배열에 포함시키는 것이 필요합니다.

하지만, 특정 시나리오에서는 이러한 의존성을 줄이는 것이 성능 최적화에 도움이 될 수 있습니다. 만약 path의 변경 여부가 popstate 이벤트 리스너의 동작에 큰 영향을 주지 않는다면, 의존성을 제거하여 불필요한 재실행을 방지할 수도 있습니다.

여기 유사한 질문과 답변을 참고하시면 도움이 될 수 있습니다:
- useEffect 의존성 관리

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

Hình ảnh hồ sơ của devmingyo9794
devmingyo9794

câu hỏi đã được viết

Đặt câu hỏi