作成日: 2023-4-23
更新日: 2023-9-28
Next.jsとはReactの拡張フレームワークです。
最大の特徴として、
が挙げられます。
Next.jsはサーバ機能を持っているため、Webサーバを別途用意する必要はなく、node.jsを用意した環境であれば動いてくれます。
また、簡易なAPIサーバ機能も作ることができます。
一方、Reactの場合はReactで作ったアプリケーションを動かす環境としてWebサーバを用意する必要があります。
また、ReactにAPIサーバの機能はないので、APIサーバも別途用意する必要があります。
CSR
Reactアプリケーションは、CSR(クライアントサイドレンダリング)と呼ばれるレンダリング方法を採用したSPA(シングルページアプリケーション)が一般的です。
仕組みは以下となります。
この手法のメリットは、
である。
上記画像で例えると、出品者がDB上に商品を登録すれば、ユーザはすぐにその情報を取得することができます。
デメリットとしては、
文字通り、ユーザがみているブラウザ側でjavascriptが実行された後、画面が描画されるので、デバイスのスペックによって描画速度が左右されます。
なお、Next.jsのアプリケーションでこのレンダリング方法は可能です。
SSR(Dynamic Rendering)
SSRはサーバーサイドレンダリングの略でWebサーバでHTMLを生成して、レンダリングする方法になります。
この方法でレンダリングさせるメリットは、
があります。
デメリットとしては、
があります。
Reactアプリケーションでは、このレンダリング方法は基本的にできません。
SSG(Static Rendering)
SSGはスタティックサイトジェネレーションの略です。ビルドを行うと同時にデータ取得を行い、HTMLを生成する方法です。
このレンダリング方法のメリットは、
が挙げられます。
デメリットとしては、
が挙げられます。
Reactアプリケーションでは、このレンダリング方法は基本的にできません。
Next.jsの公式にこちらのレンダリング方法をお勧めしています。
パフォーマンス面で見るとSSGが最も優れています。
Next.jsは、高速でかつSEOに強いWebサイト構築ができるReactの拡張フレームワークです。
今回紹介したレンダリング方法のほかにもISRやOndemandISRといったレンダリング方法があります。
ISRについては以下の記事を参考にしてください。