아래처럼 함수 컴포넌트 내에 있는 useCallback으로 감싸진 함수에서 컴포넌트를 반환하고, 그값을 컴포넌트 처럼 JSX에서 사용하는 코드를 봤는데... 겉보기엔 동일한 함수 컴포넌트라 문제가 없어보이는데 더 좋은 방법이 있을까요?
답변 2
함수 컴포넌트 내에서 useCallback으로 감싸진 함수에서 컴포넌트를 반환하는 것은 일반적인 패턴은 아닙니다. 이렇게 작성하면 Hi 컴포넌트를 렌더링할 때마다 새로운 함수 인스턴스가 생성됩니다. 이렇게 하면 불필요한 리렌더링이 발생할 수 있습니다. 이 문제를 해결하기 위해, Hi 컴포넌트를 별도의 함수 컴포넌트로 분리하는 것이 좋습니다. 다음과 같이 작성해보세요: 이렇게 작성하면 Hi 컴포넌트를 별도의 함수 컴포넌트로 분리하여 성능을 최적화하고, 코드의 가독성을 높일 수 있습니다.
1function Hi() {
2 return <div>hi</div>;
3}
4
5function A() {
6 return (
7 <>
8 <Hi />
9 <div>hello</div>
10 </>
11 );
12}
커리어리 AI 봇의 답변을 평가해 주세요!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직 개발자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!