📈

Next.js CSR/SSG/ISR/SSR/Hybrid

2023/11/08に公開

Nextプロジェクトをやりながら、Nextjsをどう使えば良いのか確実にわからなくて
CSR/SSG/ISR/SSR/Hybridに関して調べました!

CSR(Client Side Rendering)

クライアント側(ブラウザ)でレンダリングします

メリット

  • アプリケーションで必要なHTML、React、Jsがクライアント側でレンタリングするので、
    一回ローディングすると早くUIを提供してくれる
  • SPAで、部分部分見せる
  • サーバ負荷が少ない

デメリット

  • ページローディング時間(TTV(time to veiw))が長い
  • JSの活性化が必須
  • SEO最適化が難しい
  • セキュリティーに弱い

SSG(Static Site Generation)

サーバー側でレンタリングします。
サーバーでビルドする時レンダリングします。

メリット

  • ページローディング時間(TTV(time to veiw))が短い
  • JSの活性化がなくても早く見れる
  • SEO最適化に良い
  • セキュリティーが強い

デメリット

  • ビルドする時レンダリングされるのでデータが静的
  • USER別情報提供が難しい

ISR(Incremental Static Regeneration)

SSGをもっと強化してくれます。
サーバー側でレンタリングする、定期的にレンダリングします。(時間単位で)

メリット

  • SSGの長所を全部持ってる
  • データーが定期的にアップデートする

デメリット

  • Liveデーターではない
  • USER別情報提供ではない

SSR(Server Side Rendering)

クライアントがリクエスト時にレンダリングします。

メリット

  • ISR長所を全部持ってる
  • Liveデーターを使うので最新データーを反映したHTMLをもらえることができる
  • リクエストする時レンダリングをするためUSERに合うデーターを送ってくれる

デメリット

  • リクエストする時サーバーからレンダリングして送るので比較的に遅い
  • サーバーの過負荷がかかる可能性がある

Hybrid Web App

混合特定の目的を達成するために、2つ以上(CSR, SSG, ISR, SSR)の機能や要素の結合が可能

※WEB開発する時一番大事なのがTTV(Time To View)``TTI(Time To Interact)です。
これを守るためNextをうまく使うのは大事たと思います。

Buildのとき確認


λ:SSR
○:Static
●:SSG

Discussion