Next.js

server component와 client component

백단비 2023. 6. 28. 23:20

NEXT.JS의 Component

next.js의 일반적으로 작성하는 것들은 server component이다.

html안에 javascript를 넣을 수 없다. hook도 사용 불가능. onClick 이벤트 같은 것도 노노

 자바스크립트가 없으니 페이지를 로드할 때 속도가 빠르다.

 

자바스크립트를 넣고 싶으면 

컴포넌트 맨 위에 'use client' 코드를 넣으면 됨

이 코드 아래 모든 컴포넌트는 client component가 된다.

하지만 자바스크립트를 넣으므로써 용량이 커지고 페이지 로딩속도가 느려진다는 단점이 발생한다.

client component를 로드하려면 hydration이라는 과정을 거쳐야 하는데 그것 때문에 속도가 더 느려진다.

hydration??

=> SSR(server-side Rendering)에서 렌더링 된 정적 페이지와 번들링된 JavaScript를 서로 매칭 시키는 과정

 

근데! use client를 작성하지 않고도 통과되는 이건 모임...

App router를 사용하는 곳에서는 use client를 안 쓰면 error가 나는데

여기서는 error없이 작동이 잘 됨 이유가.. 뭐지?

이유를 아시나요??? 아시는 분....ㅜㅜㅜㅜ

찾아보고 다시 글을 수정해야겠다.

 

 

 

 

 

 

Next.js의 Hydrate란?

Next.js 프레임워크의 동작원리를 제대로 파악하고 있는 개발자라면 Hydrate에 대해선 이미 익숙한 용어일 것이다. 그러나 Next.js의 주요 동작 방식 중 하나임에도, 눈에 잘 띄지 않아 놓치기도 쉬운

helloinyong.tistory.com

 

 

나중에 보려고 작성

CSR(Client Side Rendering) 테스트 
개발자 도구 -> Network -> Slow 3G로 바꾸시고, Disable cache를 클릭,

새로고침 하면 테스트해 볼 수 있다.
자바스크립트 비활성화하기
보안 및 개인정보 보호-사이트 및 방패 설정-자바스크립트-자바스크립트 비활성화

 

=> react로 작성할 때면 빈 div태그만 있기 때문에 하얀 화면만 먼저 나오고 나중에 받아온 데이터를 보여줌

Next.js로 작성하면 받아온 데이터를 나중에 보여주긴 하지만 내가 작성한 html코드들은 보임(pre Rendering)

 

 

 

320x100

'Next.js' 카테고리의 다른 글

파일 기반 라우팅 (Feat. Page Router)  (0) 2024.05.17
Next.JS의 보호된 파일명  (0) 2024.05.03
Next.js 배포  (0) 2023.09.20
NEXT의 pages  (0) 2023.06.28
NEXT.JS 설치  (0) 2023.06.28