TechCraft – エンジニアのためのスキルアップメモ

エンジニアのスキルアップを少しでも加速する技術ブログ

Next.jsとは?

Next.jsとは? – 最新のフルスタックReactフレームワークの概要と活用方法

(注記:本記事は2025年2月時点の情報に基づいています。)

1. Next.jsとは?

Next.jsは、Vercel社が開発したReactベースのフルスタックフレームワークです。主にSSR(サーバーサイドレンダリング静的サイト生成(SSG)を簡単に実現できることが特徴であり、高速なWebアプリケーションやSEO対策を重視したサイト開発に適しています。

Next.jsを使用すると、従来のReactのクライアントサイドレンダリングCSRに加え、以下のような多様なレンダリング手法を活用できます。 - SSR(Server-Side Rendering) – リクエストごとにサーバーでページを生成 - SSG(Static Site Generation) – ビルド時にHTMLを生成し、キャッシュを活用 - ISR(Incremental Static Regeneration) – 必要なタイミングで静的サイトを再生成 - App Router(Appディレクトリ) – 最新のディレクトリ構造でサーバーコンポーネントを活用

Next.jsは、モダンなWeb開発に必要な機能を標準装備しており、シンプルな設定でパフォーマンス最適化が可能です。


2. Next.jsの主な特徴

(1) ハイブリッドレンダリング

Next.jsでは、サーバーサイドレンダリングSSR静的サイト生成(SSG)をプロジェクトごとに柔軟に選択できます。これにより、動的なコンテンツと高速な表示の両方を両立可能です。

例: APIデータをサーバーで取得し、SSRする

import { GetServerSideProps } from "next";

export default function Page({ data }: { data: string }) {
  return <div>{data}</div>;
}

export const getServerSideProps: GetServerSideProps = async () => {
  const res = await fetch("https://api.example.com/data");
  const data = await res.json();
  return { props: { data } };
};

(2) App Routerとサーバーコンポーネント

Next.js 13以降では、新しい「App Router」機能が導入され、pages/ディレクトリではなくapp/ディレクトリを使用する方式が主流になりました。これにより、React Server Components(RSC)を活用し、サーバーサイドとクライアントサイドを適切に分離できます。

例: サーバーコンポーネントを使用

// app/page.tsx
export default async function Home() {
  const data = await fetch("https://api.example.com/data").then((res) => res.json());
  return <div>{data.message}</div>;
}

(3) 画像最適化機能(next/image)

Next.jsには、画像を自動的に最適化するnext/imageコンポーネントが用意されており、サイズやフォーマットを動的に調整してパフォーマンス向上を実現します。

例: 画像の最適化

import Image from "next/image";

export default function MyComponent() {
  return <Image src="/example.jpg" width={500} height={300} alt="Example" />;
}

(4) API Routes

Next.jsでは、APIエンドポイントを直接作成できる機能(API Routes)があり、バックエンドなしでもAPIを提供できます。

例: APIルートの作成

// pages/api/hello.ts
import { NextApiRequest, NextApiResponse } from "next";

export default function handler(req: NextApiRequest, res: NextApiResponse) {
  res.status(200).json({ message: "Hello from API Route!" });
}

(5) SEO対策

Next.jsでは、メタタグやOGPタグを動的に管理する機能(next/head, next-seoがあり、検索エンジン最適化(SEO)に優れています。

例: メタタグの設定

import Head from "next/head";

export default function Page() {
  return (
    <>
      <Head>
        <title>My Page</title>
        <meta name="description" content="This is a description for SEO" />
      </Head>
      <h1>Welcome to My Page</h1>
    </>
  );
}

3. Next.jsの活用事例

(1) 大規模Webアプリ

  • Netflix, Twitch, TikTokなどの大規模サービスがNext.jsを採用し、SSRCDNキャッシュを活用して高速なページロードを実現

(2) Eコマースサイト

  • Shopify, Amazon系のストアなど、動的コンテンツを含むECサイトSSRとISRを組み合わせてパフォーマンスを最適化

(3) 静的サイト(ブログ、ポートフォリオ

  • Dev.to, Hashnodeのような技術系ブログがSSGを活用し、高速なページ表示を実現

4. Next.jsの導入方法

(1) インストール

Next.jsを新規プロジェクトで使用するには、以下のコマンドを実行します。

npx create-next-app@latest my-next-app
cd my-next-app
npm run dev

(2) デプロイ

Next.jsはVercelに最適化されており、Vercelの無料プランを使って簡単にデプロイできます。

npm i -g vercel
vercel

5. まとめ

Next.jsは、フルスタックな開発が可能なReactフレームワークとして、Webアプリケーション開発の標準になりつつあります。特に、SSR・SSG・ISR・RSCといった多様なレンダリング手法を活用し、パフォーマンスとSEOを両立できる点が魅力です。

✔ Next.jsのポイント

✅ ハイブリッドレンダリングSSR・SSG・ISR対応)
✅ 最新のApp Routerとサーバーコンポーネント活用
✅ 画像最適化やAPIルート機能が充実
SEO対策に優れ、大規模アプリやECサイトでも活躍
Vercelと組み合わせて高速デプロイ可能

Next.jsは2025年以降も進化を続け、Web開発の主流であり続けると考えられます。最新の機能を活用し、高性能なWebアプリを構築しましょう!