inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

한 입 크기로 잘라먹는 Next.js

Root Layout에서 Context API를 사용할 때 모든 컴포넌트는 클라이언트 컴포넌트가 되나요?

해결된 질문

81

박굿뜨

작성한 질문수 25

0

제목그대로의 질문입니다!

app/layout.tsx에서

<Providers>{children}</Providers>

와 같이 했을때 전체 페이지는 클라이언트 컴포넌트가 되는걸까요?

react typescript next.js

답변 2

1

이정환 Winterlood

안녕하세요 이정환입니다.

결론부터 말씀드리자면 그렇지 않습니다.

클라이언트 컴포넌트에서 import하여 자식으로 배치한 컴포넌트는 클라이언트 컴포넌트가 되지만, 지금처럼 children Props 형태로 전달된 서버 컴포넌트는 클라이언트 컴포넌트로 전환되지 않습니다.

이 내용에 대해서는 3.5) 리액트 서버 컴포넌트 주의사항 챕터의 12분 14초 경에 자세히 설명드리고 있으니 참고하시면 좋겠습니다.

 

1

인프런 AI 인턴

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

박굿뜨님께서 질문하신 내용은 Next.js에서 Root Layout에서 Context API를 사용할 때 모든 컴포넌트가 클라이언트 컴포넌트가 되는지에 대한 것입니다.

Context API와 클라이언트 컴포넌트

Next.js에서는 클라이언트 컴포넌트(use client 직역 가능)와 서버 컴포넌트가 있습니다. Context API는 주로 클라이언트 측에서 상태 관리를 위해 사용하는 것이 일반적입니다. 때문에 Providers라는 Context를 제공하는 컴포넌트가 클라이언트에서 작동해야 합니다.

하지만 전체 페이지가 클라이언트 컴포넌트로 변환되는 것은 아닙니다. Root Layout에서 Context API를 사용하여 컴포넌트 계층 구조에 상태와 데이터를 전파할 수 있지만, 이는 상태 관리와 관련된 부분에만 영향을 미치며, 클라이언트 컴포넌트로 설정된 부분에만 적용됩니다. 즉, <Providers> 내의 자식 컴포넌트({children}) 중에서 클라이언트 컴포넌트로 작성된 부분에만 클라이언트 방식으로 작동하고, 나머지 서버 컴포넌트는 서버 컴포넌트로 남습니다.

추가 정보 및 관련 자료

다음과 같은 기존 유사 질문에서 추가적인 힌트를 얻을 수 있습니다:

이를 통해 Context API와 클라이언트 컴포넌트의 동작에 대한 더 깊은 이해를 도울 수 있습니다. 종합적으로 클라이언트 컴포넌트의 필요에 따라 결정된 영역은 명시적으로 클라이언트 사이드에서 실행되도록 설계하는 것이 좋습니다.

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

풀라우트캐시 동작 원리에서 데이터 캐시 관련 질문

0

23

2

next.js 프로젝트

0

28

1

Next.js + Tanstack Query BFF 구조 질문

0

29

2

Next.js 사전렌더링 이해하기 부분

0

34

2

모달 관련 질문

0

42

3

렌더링 관련 질문

0

80

2

중복으로 하나의 api를 요청할 때 캐싱 옵션 통일화

0

64

2

라우트 세그먼트 옵션 강좌 노트에 사소한 제보 남깁니다.

0

65

2

SSR시 context에 params말고 query를 사용하면 안되나요?

0

75

2

npx prisma db push 시 에러가 뜹니다.

0

94

3

vercel 배포를 실패하였습니다.

0

101

3

Image 컴포넌트 사용시 브라우저 콘솔에 경고는 왜 뜨는걸까요?

0

57

2

getServerSideProps 함수와 SSR의 관계

0

78

6

없는 페이지인데 풀라우트캐시로 저장이 되는 이유가 궁금합니다

0

61

2

실제 프로젝트에서 SSR 사용에 관해서 질문드립니다.

0

117

2

일반적인 nextjs project architecture에 대하여..

0

90

2

2.14 Search에서 작성한건 static이긴하지만 CSR이 아닌가요?

0

74

2

배포 시 오류 발생

0

90

2

백엔드 서버 오류납니다.

0

83

2

취약점 제거시 nestjs 버전 문제가 생길까요?

0

93

1

eslint.config.mjs 내 rules 어떻게 설정 하나요?

0

107

1

[book]/[id]/page.tsx 모달 띄울 때 성능 하락 현상은 ReviewList를 불러오면서 발생하는 문제 같습니다.

0

63

2

빨간줄 설정

0

77

2

익스텐션 질문

0

61

1