Hydrate
란, Server Side단에서 렌더링 된 정적 페이지와 번들링된 js파일(Webpack)을 클라이언트에게 보낸 뒤, 클라이언트 단에서 HTML코드와 React인 JS 코드를 서로 매칭 시키는 과정을 말한다.public/index.html
의 기본 뼈대만있는 내용을 제외하고는 src/index.js
의 자바스크립트 코드에서 모든 화면을 렌더링 한뒤, HTML DOM 요소 중 root라는 엘리먼트를 찾아 하위로 주입을 하여 웹 화면이 구성합니다.이게 index.html 파일 소스
Pre-Rendering
한다.Pre-Rendering
을 하면 HTML Document가 생성되고, 이 파일을 클라이언트에게 전송한다.이때 클라이언트가 받은 웹페이지는 단순한 웹 화면만 보여주는 정적 HTML일 뿐이고 자바스크립트 요소는 하나도 없는 상태이다.
<aside> 💡 화면을 보여주고 있긴 하지만?, 특정 JS 모듈 뿐만 아니라 단순 클릭과 같은 이벤트 리스너들도 각 웹사이트의 DOM 요소에 적용되어 있지 않은 상태를 말한다.
</aside>
차이점
document
타입의 파일을 전송받고, 그 이후에 렌더링된 React.js
파일들이 Chunk 단위로 다운로드 되는 것을 확인 할 수 있다.Hydrate
라고 한다.<aside> 💡 Hydrate는 이미 pre-render된 HTML페이지위에 JS코드들이 한번 더 렌더링되면서 인터렉티브한 요소들이 추가되는 과정이라고 할 수 있다.
</aside>