Next.js入門:WebアプリをゼロからつくるReactフレームワーク完全ガイド

Next.jsとは

Next.js(ネクストジェイエス)は、Vercelが開発しているReactベースのウェブフレームワークです。SSR(サーバーサイドレンダリング)・SSG(静的サイト生成)・ISR(インクリメンタル静的再生成)・API Routesなどの機能をReactに追加し、本番環境に適したウェブアプリケーションを効率的に構築できます。

2024年のApp Router(Next.js 13+)では、React Server Componentsを採用し、より高性能でシンプルなアプリケーション構造が実現されました。2026年現在はNext.js 15がリリースされています。

ReactとNext.jsの違い

項目 React(CRA/Vite) Next.js
レンダリング クライアントサイド(CSR)のみ SSR・SSG・ISR・CSRを選択可能
ルーティング React Router等が必要 ファイルベースルーティング(内蔵)
SEO 弱い(SPAの初期HTML問題) SSRでSEO対応が容易
APIルート 別途サーバーが必要 API Routesで一体化(内蔵)
最適化 手動設定 画像・フォント最適化が自動

App Routerの基本構造

Next.js App Routerでは、`app/`ディレクトリ内のファイル構造がそのままURLルートになります。

  • `app/page.tsx` → `/`(トップページ)
  • `app/about/page.tsx` → `/about`
  • `app/blog/[slug]/page.tsx` → `/blog/任意のスラッグ`(動的ルート)
  • `app/layout.tsx` → 共通レイアウト(ナビゲーション・フッター等)
  • `app/api/route.ts` → APIエンドポイント

Server ComponentsとClient Components

App RouterのReactコンポーネントはデフォルトでServer Componentsです。サーバーで実行され、クライアントにHTMLを送信します。インタラクティブな処理(状態管理・イベントハンドラ)が必要な場合は、ファイルの先頭に`’use client’`を追加してClient Componentにします。

  • Server Component(デフォルト):データフェッチ・DB接続・ファイル読み込み
  • Client Component(’use client’):useState・useEffect・ボタンクリック処理

データフェッチの方法

App RouterではServer Componentでasync/awaitを使って直接データフェッチができます。

  • fetch()によるAPIコール:`const data = await fetch(‘https://api.example.com/data’)`
  • ORMによるDB接続:Prisma・Drizzleを使ったサーバーサイドDB接続
  • キャッシュ制御:`{cache: ‘force-cache’}`(SSG相当)、`{cache: ‘no-store’}`(SSR相当)、`{next: {revalidate: 60}}`(ISR相当)

Vercelへのデプロイ

  1. GitHubにリポジトリをプッシュ
  2. Vercelにサインアップ(GitHubアカウントで可)
  3. 「New Project」からリポジトリをインポート
  4. 環境変数を設定(.envファイルの内容)
  5. 「Deploy」ボタンをクリック → 自動ビルド・デプロイ

プッシュするたびに自動デプロイされ、PRのプレビューデプロイも自動生成されます。

まとめ

Next.jsは現代のウェブアプリケーション開発のデファクトスタンダードです。Reactの知識があれば比較的スムーズに習得でき、SEOに強いウェブサイトから複雑なウェブアプリケーションまで幅広く対応できます。まずは公式チュートリアル(nextjs.org/learn)でApp Routerの基礎を学ぶことから始めましょう。

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です