Next.jsとは?Reactとの違いを簡単解説

まずは、これだけ

Reactが画面を作る道具なら、Next.jsはReactを使ってWebアプリ全体を作るための仕組みが揃ったフレームワーク。

Reactの画面部品へNext.jsがページやサーバーなどの仕組みを加える図
React:画面の部品と更新Next.js:アプリ全体の土台

Reactに足りない部分をまとめて用意する

Reactは画面作りに強い一方、ページをどのファイルで管理するか、サーバーで処理するか、画像をどう最適化するかなどは決めません。Next.jsは、それらを共通の方法で扱えるようにします。

ReactのUI部品だけを使う開発と、ページやサーバーの仕組みも揃ったNext.js開発の比較
Reactという画面作りの材料に、アプリ全体を組み立てるための道具とルールを加えたものがNext.jsです。
ページ構成

ファイル構成をもとにURLとページを整理する。

サーバー処理

必要に応じてサーバー側でもデータを取得・処理する。

最適化

画像、フォント、配信用ファイルなどを扱いやすくする。

画面をどこで作るか選べる

Webページは、利用者のブラウザでJavaScriptを実行して作るだけでなく、サーバーでHTMLを作ってから届けたり、公開前にあらかじめ作っておいたりできます。Next.jsはページの性格に合わせて表示方法を選べます。

事前に作る

内容があまり変わらないページを高速に配信しやすい。

アクセス時に作る

利用者や最新データに合わせたHTMLを返せる。

ブラウザで更新

表示後の操作に応じて必要な部分を変化させる。

実際のアプリでは、この3つを完全に分けるのではなく、ページや部品ごとに組み合わせます。

ひとつのプロジェクトで画面から配信まで扱う

Next.jsでは、Reactのコンポーネント、ページ、データ取得、サーバー処理などを同じプロジェクト内で整理できます。複数の道具を一から選び、接続する手間を減らしやすいのが利点です。

開発者が画面、サーバー、データをつなぎ、最適化されたWebアプリを利用者へ届ける様子
画面を作るだけでなく、データとの接続や利用者へ届けるところまでをひとつの流れで扱います。
1部品Reactで画面を作る
2ページURLを構成する
3データ必要な情報を取得
4ビルド配信用に整える
5配信利用者へ届ける

Next.jsが向いている場面と注意点

記事や商品ページのように検索から読まれるページと、ログイン後の操作画面を同じサービスで扱いたい場合に向いています。Reactを使うチームが、ページ構成やサーバー処理の方法を揃えたい場合にも役立ちます。

一方、仕組みが多い分、React、サーバー、キャッシュ、表示方法の違いを学ぶ必要があります。小さな静的サイトや単純な画面なら、Next.jsを使わない構成のほうが管理しやすいこともあります。

ここまでのまとめ

Reactは画面を作る中心技術、Next.jsはReactを使ってページ・サーバー・配信まで組み立てるための土台です。