これまでは、Reactで動的なUIを作る方法へ注目してきました。
多くのReactアプリは、ブラウザーでJavaScriptを実行する
CSR
を使います。
豊かな操作を実現する一方、初回に空画面が出たり、SEOが難しかったりする場合があります。
それを補うのが
SSR
と
SSG
です。
今回は各方式の仕組みと特徴、密接に関係する
Hydration
を詳しく確認します。
SSRやSSGのHTMLは、最初は見るだけの静的な文書です。
ボタンや入力を扱うには、ReactのJavaScriptが必要です。
Hydration
は、サーバー生成HTMLの上でReactを動かし、乾いた土地へ水を与えるように、動的なアプリへ変える過程です。
Reactは、サーバーHTMLとクライアントのVirtual DOMが
正確に一致する
と期待します。
異なるとHydration Mismatchの警告が出て、場合によってはクライアントで全体を再描画し、SSR・SSGの利点を失います。
主な原因は次のとおりです。
必要なJavaScriptだけを取得し、全体の量を減らします。
重要でない部分の読み込みが、重要な操作を妨げません。
段階的にHydrationでき、TTIも改善します。