【ねくすとじぇいえす】

Next.js とは?

最終更新:
💡 Reactに「本番対応の翼」をつけたフレームワーク

ReactでWebアプリを作るためのフレームワーク。ファイルに基づくルーティング、サーバーでの描画、画像やフォントの最適化などを備え、App RouterとPages Routerでは使う規約が異なる。

📌 このページのポイント
Next.js:HTMLをいつ作る?SSR:要求に応じて描画要求サーバーHTMLSSG:ビルド時に生成ビルド生成HTML生成したHTMLに、ブラウザーの操作を接続実際はキャッシュ・再検証なども組み合わせる
SSRとSSGの基本的な比較。実際の描画方式はRouterやデータ、キャッシュの設計にもよります。
ひよこ ひよこ
Next.jsとReactって何が違うの?
ペンギン先生 ペンギン先生
Reactは画面を組み立てるライブラリだよ。Next.jsはReactを使い、URLのルーティング、サーバーでの描画や配信などを組み合わせるフレームワーク。Reactに画面づくりを任せつつ、Webアプリ全体の仕組みを用意するんだ
ひよこ ひよこ
ファイルを置くとURLになるって、本当?
ペンギン先生 ペンギン先生
決まった規約があるよ。App Routerではapp/about/page.tsxを作ると/aboutのページになる。一方、Pages Routerではpages/about.tsxを使う。どんなファイルでもURLになるわけではなく、どちらのRouterかを確認するのが大切なんだ
ひよこ ひよこ
SSRとSSGは、何が違うの?
ペンギン先生 ペンギン先生
SSRは要求に応じてサーバーで描画する方法、SSGはビルド時にページを生成する方法だよ。Next.jsでは静的な部分と動的な部分、キャッシュや再検証を組み合わせることもある。データがいつ必要か、どのくらい更新されるかを考えようね
ひよこ ひよこ
App Routerのサーバーとクライアントの違いは?
ペンギン先生 ペンギン先生
App Routerのpageやlayoutは、既定ではServer Componentsだよ。ブラウザーでボタンのクリックや状態を扱う部分は、use clientで境界を示すClient Componentsを使う。ただしClient Componentも初回表示用のHTMLがサーバーで事前描画されるので、常にブラウザーだけで描く意味ではないんだ
ひよこ ひよこ
Vercel以外には公開できないの?
ペンギン先生 ペンギン先生
ほかにも公開できるよ。Node.jsサーバーやDockerで動かす方法、静的ファイルに書き出す方法などがある。静的出力はサーバーが必要な機能に制限があるので、利用する機能に合わせて配置先と方式を選ぼうね
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Next.js」って出てきたら「ReactでWebアプリを作るための仕組みをまとめたフレームワーク」と思えばだいたいOK!
📖 おまけ:英語の意味
「Next.js」 = Reactを使うWebフレームワークの名前
💬 Nextは英語では「次の」という言葉。ここではReactと組み合わせるフレームワークの固有名として覚えよう

参考資料

← 用語集にもどる