Development/React.js

next - _document.js

moretz0921 2022. 4. 14. 23:21

_document : head 태그나 body태그 안에 들어갈 내용들을 커스텀할 때 활용

- _app.js 파일 다음에 실행 
- title, description, meta 등 정보 제공 HTML 태그 작성 가능
- CSS-in-JS의 서버 사이드 렌더링을 위한 설정을 할 때 사용

 

설정
1) _document를 작성할 때는 Document 클래스를 상속받는 클래스 컴포넌트로 작성
- 렌더 함수는 꼭 <Html>, <Head>, <Main>, <NextScript> 요소를 리턴

2) _document에서 사용하는 <Head>태그는 next/head가 아닌 next/document 모듈에서 불러와야한다.
- _document의 <Head>태그에는 모든 문서에 공통적으로 적용될 내용(Ex. charset, 뷰포트 메타태그 등)이 들어간다.

import Document, { Html, Head, Main, NextScript } from "next/document";

export default class MyDocument extends Document {

  render() {
    return (
      <Html>
        <Head>
          <!— 모든 페이지의 제목이 front web으로 변한다. —>
          <title>front web</title>
          <meta charSet="utf-8"></meta>
          <body>
            <Main />
            <NextScript />
          </body>
        </Head>
      </Html>
    );
  }
}


 
3) _document는 언제나 서버에서 실행되므로 브라우저 api 또는 이벤트 핸들러가 포함된 코드는 실행되지 않는다. 
- <Main /> 부분을 제외한 부분은 브라우저에서 실행되지 않으므로 이곳에 비즈니스 로직을 추가해서는 안되며, _app과 마찬가지로 getStaticProps와 getServerSideProps 를 통해 데이터를 불러올 수 없다.

 

 

 

 

 

출처

https://gschoi1224.github.io/docs/Next.js/commonPage/

 

Next.js 공통 페이지

CGS’s Dev Log

gschoi1224.github.io

https://merrily-code.tistory.com/154

 

Next.js의 _document와 _app에 대하여

Next.js에는 두 가지 중요한 기본 페이지가 있는데요, 바로 _document 와 _app 입니다. _document 와 _app 에는 페이지에 공통적으로 적용될 내용을 작성하곤 하는데, 둘이 정확히 어떻게 다른지와 어떤 내

merrily-code.tistory.com

 

'Development > React.js' 카테고리의 다른 글

next - Layout  (0) 2022.04.14
next - _error.js  (0) 2022.04.14
next에서의 Data Fetching  (0) 2022.04.14
next.config.js 로 Rewrite 하기  (0) 2022.04.14
next.config.js로 Redirects 설정  (0) 2022.04.14