Webフロントエンド - フレームワーク・ライブラリ

Next.js ねくすとじぇいえす

ReactSSR(サーバーサイドレンダリング)SSG(静的サイト生成)App RouterVercelフルスタック
Next.jsについて教えて

簡単に言うとこんな感じ!

Reactっていう「部品を作るための道具」を、もっと便利に使えるようにしたフレームワークだよ!ページの読み込みを速くしたり、SEOに強くしたり、APIまで作れちゃったりと、「Webサイト&Webアプリを丸ごと作れる全部入りの土台」ってイメージ!


Next.jsとは

Next.jsは、Meta(旧Facebook)が開発したUIライブラリ React をベースに、Webアプリケーション開発に必要な機能を一通り揃えた フルスタック対応のWebフレームワークです。クラウドホスティング企業の Vercel が開発・メンテナンスしており、2016年の初リリース以降、急速に普及しています。

通常のReactだけでは「ページ遷移の仕組み」「SEO対策のためのサーバー処理」「APIの実装」などを自前で組み合わせる必要がありますが、Next.jsはこれらを最初から内包しています。「React単体がエンジンだとすれば、Next.jsはエンジン付きの完成した車」とイメージすると分かりやすいでしょう。

システム発注の現場では、「フロントエンドはNext.jsで」という指定がRFP提案書によく登場します。Reactエコシステムの事実上の標準フレームワークとして定着しており、採用・発注・評価の判断軸として知っておく価値のある技術です。


Next.jsの主なレンダリング方式

Next.jsの最大の特徴は、どこでHTMLを生成するかを柔軟に選べることです。用途に合わせて複数の方式を使い分けられます。

方式英語名仕組み向いている用途
SSRServer-Side RenderingリクエストのたびにサーバーでHTML生成常に最新データを表示したいページ
SSGStatic Site Generationビルド時にHTMLを事前生成更新頻度が低いLP・ブログ
ISRIncremental Static Regeneration静的生成+一定時間後に再生成ECサイトの商品ページなど
CSRClient-Side Renderingブラウザ上でJSがHTMLを生成ログイン後のダッシュボードなど

覚え方:「ど・び・い・ぶ」

  • のタイミングで — SSR(どリクエスト時)
  • ルド時に — SSG(ビルド時)
  • ったん静的→ずれ更新 — ISR
  • ラウザで — CSR

App Router と Pages Router

Next.js 13以降、ページ構成の方式が2種類存在します。

方式特徴推奨度
App Router(新)app/ ディレクトリ。Server Components対応。より細かい制御が可能✅ 現在の推奨
Pages Router(旧)pages/ ディレクトリ。歴史が長く情報が豊富⚠ 既存プロジェクトで多い

提案書や見積書に「App Router移行対応」と書かれていたら、旧方式から新方式への切り替え作業を指しています。


歴史と背景

  • 2016年10月 — Vercel(当時 Zeit)がNext.js 1.0をオープンソースとして公開。Reactの「SSRがやりにくい」問題を解決するために生まれた
  • 2018年 — 動的ルーティング対応など機能が充実し、本格的なプロダクション採用が増加
  • 2020年 — Next.js 10でISR(Incremental Static Regeneration)を導入。静的サイトの「鮮度」問題を解決
  • 2022年10月 — Next.js 13でApp Router(beta)とReact Server Componentsの採用を発表。フレームワークの設計思想が大きく転換
  • 2023年〜現在 — App RouterがStableに。世界的なフロントエンドフレームワークの主流の一つとなり、日本でも多くの企業が採用

他フレームワークとの比較

Next.jsと比較されることが多いフレームワーク・ライブラリを整理します。

名前ベース主な特徴選ぶ理由
Next.jsReactSSR/SSG/ISR/CSR全対応・フルスタックバランスが良く採用実績が最大
Nuxt.jsVue.jsNext.jsのVue版Vue.jsを使いたいチーム向け
RemixReactサーバー重視・Web標準準拠パフォーマンスを極めたい場合
Astro複数対応コンテンツサイト特化・JS最小化ブログ・ドキュメントサイト
SvelteKitSvelte軽量・高速学習コストを下げたい小規模PJ

Next.jsのアーキテクチャ概要

Next.js アーキテクチャ概要 ブラウザ(クライアント) ユーザーのリクエスト React コンポーネント (CSR / Hydration) 静的ファイル(HTML/CSS) JS バンドル Next.js サーバー ルーティング App Router / Pages Router レンダリングエンジン SSR / SSG / ISR API Routes バックエンド処理も担う ミドルウェア 認証・リダイレクトなど 外部リソース データベース 外部API / CMS 認証サービス CDN / ストレージ → リクエスト ⇢ レスポンス(破線)

関連用語

  • React — Next.jsのベースとなるUIライブラリ。コンポーネント単位でUIを構築する
  • SSR(サーバーサイドレンダリング) — サーバー側でHTMLを生成してからブラウザに返す方式
  • SSG(静的サイト生成) — ビルド時にHTMLを事前生成しておく方式。高速・低コスト
  • Vercel — Next.jsを開発するクラウドホスティング企業。Nextとの親和性が最高
  • TypeScript — Next.jsプロジェクトでほぼ標準的に組み合わせて使われる型付きJS
  • REST API — Next.jsのAPI Routesで構築することの多いAPI形式
  • CDN — 静的ファイルやISRページの配信を高速化するために組み合わせて使う
  • Headless CMS — Next.jsと組み合わせてコンテンツ管理に使うCMSの形態