【2026年版】Next.js 15完全入門ガイド|App Router・Server Components・最新機能を実践コードで徹底解説

Next.jsとは?React開発者が学ぶべき理由

Next.jsはVercel社が開発したReactベースのフルスタックWebフレームワークです。2026年現在、Next.js 15がリリースされており、Server Components・App Router・Server Actions・Turbopackなど、Reactエコシステムの最先端機能が揃っています。

Next.jsを使うことで、SEO対策・パフォーマンス最適化・フルスタック開発が一つのフレームワークで完結します。現在、多くの企業がNext.jsを採用しており、エンジニアとしての市場価値向上にも直結します。

Next.js 15のセットアップ

# Next.jsプロジェクトの作成(推奨: create-next-app)
npx create-next-app@latest my-next-app

# 対話式設定
✔ Would you like to use TypeScript? … Yes
✔ Would you like to use ESLint? … Yes
✔ Would you like to use Tailwind CSS? … Yes
✔ Would you like to use `src/` directory? … Yes
✔ Would you like to use App Router? (recommended) … Yes
✔ Would you like to customize the default import alias (@/*)? … No

cd my-next-app
npm run dev

App Router の基本構造

my-next-app/
├── src/
│   └── app/
│       ├── layout.tsx      # ルートレイアウト
│       ├── page.tsx        # ホームページ(/)
│       ├── about/
│       │   └── page.tsx    # Aboutページ(/about)
│       ├── blog/
│       │   ├── page.tsx    # ブログ一覧(/blog)
│       │   └── [slug]/
│       │       └── page.tsx # 記事詳細(/blog/[slug])
│       └── api/
│           └── posts/
│               └── route.ts # APIルート(/api/posts)
├── public/
└── next.config.ts

Server Components と Client Components

Next.jsのApp Routerでは、デフォルトで全コンポーネントがServer Componentsになります。インタラクティブな機能が必要な場合のみ、ファイルの先頭に'use client'を追加してClient Componentにします。

// Server Component(デフォルト)
// src/app/blog/page.tsx
import { getPosts } from '@/lib/api';

export default async function BlogPage() {
  // サーバーサイドでデータフェッチ(高速・SEO最適)
  const posts = await getPosts();

  return (
    <main>
      <h1>ブログ</h1>
      <ul>
        {posts.map((post) => (
          <li key={post.id}>
            <a href={`/blog/${post.slug}`}>{post.title}</a>
          </li>
        ))}
      </ul>
    </main>
  );
}
// Client Component(インタラクティブが必要な場合)
'use client';
import { useState } from 'react';

export default function Counter() {
  const [count, setCount] = useState(0);
  return (
    <button onClick={() => setCount(count + 1)}>
      Count: {count}
    </button>
  );
}

メタデータの設定(SEO最適化)

// src/app/layout.tsx
import type { Metadata } from 'next';

export const metadata: Metadata = {
  title: {
    default: 'Tech Blog',
    template: '%s | Tech Blog',
  },
  description: 'エンジニア向けの技術情報ブログです。',
  openGraph: {
    title: 'Tech Blog',
    description: 'エンジニア向けの技術情報ブログです。',
    url: 'https://example.com',
    siteName: 'Tech Blog',
    locale: 'ja_JP',
    type: 'website',
  },
  robots: {
    index: true,
    follow: true,
  },
};

export default function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (
    <html lang="ja">
      <body>{children}</body>
    </html>
  );
}

Server Actions でフォーム処理

// src/app/contact/actions.ts
'use server';

export async function submitContactForm(formData: FormData) {
  const name = formData.get('name') as string;
  const email = formData.get('email') as string;
  const message = formData.get('message') as string;

  // バリデーション
  if (!name || !email || !message) {
    return { error: '全ての項目を入力してください' };
  }

  // メール送信やDB保存の処理
  await sendEmail({ name, email, message });

  return { success: 'メッセージを送信しました' };
}

まとめ

Next.js 15はReact開発者にとって必須のフレームワークです。App Router・Server Components・Server Actionsを習得することで、高パフォーマンスでSEOに強いWebアプリケーションを効率的に開発できます。

投稿者 kasata

IT企業でエンジニアとして勤務後、テクノロジー情報メディア「Tech Athletes(テック・アスリート)」を運営。プログラミング、クラウドインフラ(AWS/GCP/Azure)、AI活用、Webサービス開発を専門とする。エンジニア・ビジネスパーソン向けに、実際に使ってみた経験をもとに信頼できる技術情報を発信中。資格:AWS認定ソリューションアーキテクト、Python 3 エンジニア認定試験合格。

コメントを残す

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