개발자
리액트의 커스텀 훅에 관해 질문이 있습니다. <A> <B /> <C /> </ A> 이런 계층으로 컴포넌트가 구성됐을 때 B, C 컴포넌트에 useCustomHook이라는 커스텀 훅을 각각 호출하고 있는 상황입니다. ex) const B = () => { const {data} = useCustomHook() } 1. 컴포넌트 B, C에서 각각 호출되는 useCustomHook은 데이터를 공유하나요? 2. B 컴포넌트만 리렌더링될 경우 C컴포넌트의 useCustomHook에도 영향이 있나요? 부모 컴포넌트 아래의 같은 자식이 useCustomHook을 동시에 사용하고 있어서 라이프사이클이 헷갈리네요 답변해주시면 감사하겠습니다!
답변 1
커스텀 훅은 훅이 호출된 컴포넌트의 라이프 사이클을 따릅니다. 간단하게 호출하는 컴포넌트의 자식 컴포넌트라고 생각하면 이해가 쉽습니다. B, C 컴포넌트에서 각각 호출된 useCustomHook은 서로 다른 라이프사이클을 갖는 훅입니다. hook이 아닌 Button이라는 컴포넌트가 B, C에서 각각 호출 됐을 때 Button 컴포넌트가 데이터를 공유하지 않는 것과 같습니다. 질문에 답변해보면 1. useCustomHook 각 컴포넌트에서 서로 다른 라이프 사이클을 형성하므로 데이터를 공유하지 않습니다. 2. 라이프 사이클이 다르기 때문에 B 컴포넌트의 리렌더링은 C 컴포넌트의 useCustomHook의 호출에 영향을 끼치지 않습니다. 같은 훅이 여러 자식 컴포넌트 사이에 중복으로 호출됐을 때 라이프 사이클을 헷갈리는 경우가 있는데, 중복 호출로 인해 불필요한 리렌더링이 발생하지 않도록 훅을 잘 분리하는것이 중요합니다!
익명
작성자
2022년 10월 18일
친절한 설명 감사드립니다!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!