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

Teo님의 프로필 이미지
Teo

작성한 질문수

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

쿼리스트링과 lastId 방식

서버사이드 렌더링 적용 후, css가 풀렸다가 다시 적용되는것 같아요.

해결된 질문

작성

·

870

1

안녕하세요!

서버사이드 렌더링 적용후에 css가 풀렸다가 다시

적용되는 것 같은데, 해결 방법이 있을까요?

로그인 후 새로고침을 하면 잠깐 첫번째 화면이 보였다가 두번째 화면을 보여줍니다.

1.png2.png

세번째 화면은 리덕스 상태입니다.

서버사이드 렌더링을 해서 user와 post의 데이터는 잘 받아오고 있는것 같습니다.

4.png

답변 3

1

Teo님의 프로필 이미지
Teo
질문자

와.. 드디어 되네요 너무 감사합니다!!

며칠 째 고생했는데 이렇게 되니까 너무 좋은데, 너무 허무하기도 하네요..ㅠㅠ

저는 여태껏 next config 설정과 babel 쪽만 보고 있었는데

이렇게 방법을 찾아내고 적용하는것이 실력이겠죠? 앞으로 더 열심히 하겠습니다!

아 그리고 혹시 몰라서 코드 남겨봅니다.

babel 대신 swc를 이용했습니다. (혹시 babel 설정으로 안되시는 분들을 위해서..)

  1. npm install --save-dev @swc/plugin-styled-components @swc/core

  2. root 폴더 안에 .swcrc 만들기

     

    // .swcrc

     

    { "jsc": { "experimental": { "plugins": [ [ "@swc/plugin-styled-components", { "displayName": true, "ssr": true } ] ] } } }

  3. next.config 파일에 설정 추가


    swcMinify: true,
    compiler: { styledComponents: true, },
    ** 혹시 .babelrc를 삭제하지 않고 남겨두고 swc를 사용하려고 하면 이런 문구가 보입니다.
    'Disabled SWC as replacement for Babel because of custom Babel configuration ".babelrc" https://nextjs.org/docs/messages/swc-disabled

    '
    'compiler options in next.config.js will be ignored while using Babel https://nextjs.org/docs/messages/ignored-compiler-options'


    바벨 셀정파일을 남겨두고 싶으시다면, 아래 설정도 next.config 파일에 추가해주시면 됩니다.
    experimental: { forceSwcTransforms: true, }

1

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

https://ant.design/docs/react/use-with-next#using-pages-router
이거 적용하셔야 할 것 같습니다.

공지사항에 등록해두겠습니다.

1

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

styled component용 ssr 설정 하셨나요?

Teo님의 프로필 이미지
Teo
질문자

_document 파일하고 .babelrc 파일도 적용해줬는데

새로고침하면 여전히 잘 안되네요ㅠㅠ

 

_document.js

image

babelrc.js

image

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

Teo님의 프로필 이미지
Teo
질문자

배포까지 다 완료한 상태에서 여러가지 해봤는데 잘 안되네요ㅠㅠ

next 버전은 13.5.2, styled-components 버전은 6.1.1 사용중입니다.

next 13버전부터 swc를 사용하라 해서 다 해봤는데 여전히 문제가 있습니다.

혹시 시간이 되신다면 코드 한번 봐주실 수 있을까요?

https://github.com/teoyou881/node-react-x

Teo님의 프로필 이미지
Teo

작성한 질문수

질문하기