• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

_app.js 랑 _documnet.js 정확히 이해가 안갑니다.

22.02.16 00:10 작성 조회수 194

1

강의 _app.js 와 Head 부분 듣고 있는데 이해가 안가서 멈추고 구글링하다가 질문글 남깁니다.

제가 이해한 내용을 이렇습니다.

_app.js은 next.js에서 내부적으로 인식하는 컴포넌트 입니다. 

pages폴더 내부에 _app.js 파일을 작성하면 가장먼저 _app.js를 호출하게 됩니다. 

_app.js는 자체에서 라우팅이 적용되고 초기에 localhost:3000으로 들어갈 경우 경로가 '/' 이니까 index.js 의 retrun 값을 Component라는 props로 받습니다. 

localhost:3000/profile 로 라우팅 될 경우 profile.js의 리턴값을 Component라는 props로 받습니다. 

즉, _app.js는 공통적으로 페이지에 레이아웃을 적용할  때 사용 합니다. 

-----

_document.js 역시 next에서 인식하는 컴포넌트로  _document.js  => _app.js순서로 동작하고 pages 내부의 모든 페이지 컴포넌트의 html의 공통적으로 적용되는 부분을 커스텀한다. 

_document.js가 리액트에서 index.html 같은 역할이고

_app.js는 client.jsx 하는 부분이랑 비슷한 것 같은데 

_document.js에 _app.js를 렌더링한다? 이렇게 이해하는게 맞나요

정확히 이해가 잘 안가는데 혹시 제가 틀린 부분 있거나 보충설명 해주실 수 있으면 부탁 드립니다.

 

 

 

답변 2

·

답변을 작성해보세요.

0

homie님의 프로필

homie

질문자

2022.02.16

빠른 답변 감사합니다. 

0

네 맞습니다. _app.js는 각 페이지 컴포넌트들 불러옵니다. 페이지들에 공통인 부분을 _app.js에서 표현할 수 있고요.

_document.js는 _app.js를 한 번 감쌉니다. html의 head같은 것을 여기에 넣습니다.

다음과 같은 JSX 모양이 됩니다.

<Document>
  <App>
    <Page>