Next.js

React ベースのフルスタックフレームワーク。SSR・SSG・App Router・API Routes を提供する。

SSRSSGApp RouterServer ComponentsAPI RoutesMiddleware

よく使う場面

  • ·App Router によるページ・レイアウト構成
  • ·Server Components でのデータフェッチ
  • ·SSG による静的サイト生成
  • ·API Routes / Route Handlers を使った BFF 実装

主要機能

  • ·App Router(Server / Client Components)
  • ·generateStaticParams による静的生成
  • ·Middleware
  • ·Image・Font 最適化
  • ·Server Actions

概要

Next.js は Vercel が開発する React ベースのフルスタックフレームワークです。 App Router の導入により、・Streaming など React の最新機能を活用した構成が標準になっています。

App Router の基本

app/ ディレクトリ配下にページを配置します。デフォルトでサーバーコンポーネントとして動作し、"use client" を宣言した場合のみクライアントコンポーネントになります。 クライアントコンポーネントはブラウザで されてからインタラクティブになります。

// app/samples/page.tsx(サーバーコンポーネント)
export default async function SamplesPage() {
  const data = await fetchData(); // サーバー側で直接 fetch できる
  return <div>{data.title}</div>;
}

データフェッチ

generateStaticParams を使うと、動的ルートを静的生成できます。

export async function generateStaticParams() {
  const slugs = getSlugs();
  return slugs.map((slug) => ({ slug }));
}

注意点

  • "use client" はできるだけ末端のコンポーネントに留める
  • Server Components ではブラウザ API(window / localStorage)は使えない
  • next/navigationuseRouter はクライアントコンポーネント限定
  • 認証状態に応じた は Server Component か Middleware で行う

関連ドキュメント

関連サンプル

同じテーマや技術スタックを使った実装例