인프런 커뮤니티 질문&답변

제로마운틴님의 프로필 이미지
제로마운틴

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

CSS 서버사이드렌더링

emotion SSR 적용 질문있습니다!

작성

·

684

0

안녕하세요 현영님!

styled-components 대신에 emotion 사용해서 실습하고 있는데, emotion 공식문서에서 10버전 이상부터는 next에서 SSR 적용이 된다고 나와있는데요. (현재 11버전 사용중입니다.)

그렇다면, pages/_document.js의 코드에서 

import React from "react";
import Document, { Html, Head, Main, NextScript } from "next/document";
// import {ServerStyleSheet} from "styled-components"

export default class MyDocument extends Document {
  static async getInitialProps(ctx) {
    // const sheet = new ServerStyleSheet();
    const originalRenderPage = ctx.renderPage;
    try {
      // ctx.renderPage = () =>
      //   originalRenderPage({
      //     enhanceApp: App => props => sheet.collectStyles(<App {...props} />)
      //   });
      const initialProps = await Document.getInitialProps(ctx);
      return {
        ...initialProps,
        styles: (
          <>
            {initialProps.styles}
            {/* {sheet.getStyleElement()} */}
          </>
        )
      };
    } catch (err) {
      console.error(err);
    } finally {
      // sheet.seal();
    }
  }

  render() {
    return (
      <Html>
        <Head />
        <body>
          <script src="https://polyfill.io/v3/polyfill.min.js?features=default%2Ces2015%2Ces2016%2Ces2017%2Ces2018%2Ces2019" />
          <Main />
          <NextScript />
        </body>
      </Html>
    );
  }
}

styled-components 관련 부분만 제외하고 입력하면 될까요?

답변 1

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

getInitialProps를 없애도 될 것 같네요.

감사합니다:)

제로마운틴님의 프로필 이미지
제로마운틴

작성한 질문수

질문하기