Next.jsとは?Reactをベースにしたオープンソースのフロントエンドフレームワーク-Vercelが開発

Next.jsは、Reactをベースにしたオープンソースのフロントエンドフレームワークで、ウェブアプリケーションやウェブサイトを簡単かつ効率的に構築できるツールです。開発元はVercelで、Reactの機能を強化し、サーバーサイドレンダリングや静的サイト生成などのモダンなウェブ開発機能を提供しています。

出典:https://nextjs.org/learn/dashboard-app
目次

Next.jsの特徴

1. サーバーサイドレンダリング(SSR)

  • ページをリクエストごとにサーバーでレンダリングし、HTMLをクライアントに送信。
  • SEOや初期読み込みのパフォーマンスに優れている。

2. 静的サイト生成(SSG)

  • ビルド時に静的HTMLを生成し、サーバーやCDN経由で提供。
  • ページの読み込み速度が高速で、トラフィックの多いサイトにも適している。

3. インクリメンタル静的再生成(ISR)

  • 静的ページを特定の間隔で再生成し、最新のデータを提供。
  • 静的と動的の利点を組み合わせた機能。

4. フルスタック対応

  • APIルートを利用してサーバーサイドのロジックを構築可能。
  • フロントエンドとバックエンドを一体化したアプリケーションを開発できる。

5. ルーティング機能

  • ファイルシステムに基づいたシンプルなルーティング。
  • pagesディレクトリにファイルを作成するだけでURLが生成される。

6. Image最適化

  • 内蔵のnext/imageコンポーネントを利用して、画像の遅延読み込みやリサイズ、フォーマット変換(例: WebP)を自動化。

7. ホットリローディング

  • 開発中にコードを変更すると即座に反映される開発者向けの機能。

8. TypeScriptサポート

  • TypeScriptをネイティブにサポートしており、型安全な開発が可能。

Next.jsの使用例

1. コーポレートサイト

  • SEOとパフォーマンスが重要な企業のウェブサイトに適している。

2. ブログやポートフォリオ

  • 静的サイト生成(SSG)を利用して、高速でシンプルな構造を構築可能。

3. eコマースサイト

  • SSRやISRを活用し、最新のデータを提供しつつSEOを最適化。

4. ダッシュボードやアプリケーション

  • APIルートやフルスタック機能を利用して、複雑なデータ操作が必要なプロジェクトに活用。

Next.jsとReactの違い

項目ReactNext.js
用途UIライブラリ(ビルドツールが必要)フルフレームワーク(SSR, SSG, ISRなどの構築済み機能を提供)
ルーティング開発者が設定を作成する必要があるファイルシステムに基づく自動ルーティング
サーバーサイド機能提供されていないSSR, APIルート, ISRなどのサーバーサイド機能を提供
設定自由度が高いが手動設定が必要最小限の設定で即座にプロジェクトを開始可能

Next.jsの利点

  1. パフォーマンス最適化
    • SSGやSSRを活用して、高速なウェブ体験を提供。
  2. SEOに強い
    • サーバーサイドレンダリングで検索エンジン向けに最適化されたHTMLを提供。
  3. 拡張性
    • フロントエンドとバックエンドを統合し、一貫した開発体験を提供。
  4. 簡単なスタート
    • テンプレートや設定が用意されており、すぐに開発を始められる。

サンプルアプリケーションの作成方法(Next.js チュートリアル)

Next.js チュートリアル(第一章)
https://nextjs.org/learn/dashboard-app/getting-started

pnpm(npmパッケージマネージャー)をインストールします。
npmNode.js に標準で付属しています。

npm install -g pnpm

プロジェクトを保存したいフォルダに移動し、次のコマンドを実行します。
例)ホームディレクトリにwslフォルダを作成して移動する(フォルダ名は任意です)

mkdir ~/wsl
cd ~/wsl

サンプルアプリケーションを作成します。

npx create-next-app@latest nextjs-dashboard --example "https://github.com/vercel/next-learn/tree/main/dashboard/starter-example" --use-pnpm

コマンド解説

部分解説
npxNode.js 公式の実行ツールで、ローカルまたはリモートのnpmパッケージからコマンドを実行
create-next-app@latest最新の create-next-app を使って Next.js プロジェクトを作成
nextjs-dashboard作成されるプロジェクトのフォルダ名(例:/nextjs-dashboard/
--example "https://github.com/.../starter-example"特定のテンプレート(GitHubリポジトリ)を使用して作成するオプション。今回は「Dashboard Starter Example」
--use-pnpm依存関係のインストールに pnpm を使用する(npmyarn ではなく)

プロジェクトフォルダに移動します。

cd nextjs-dashboard

プロジェクトのパッケージをインストール

pnpm i
処理内容説明
package.json を読むプロジェクトに必要な依存パッケージを確認します。
パッケージをインストールまだ未インストールのパッケージがあれば、node_modules/ にインストールされます。
.pnpm キャッシュを活用pnpm は重複を避けて効率的にキャッシュ管理します(同じバージョンのパッケージは再利用)。
pnpm-lock.yaml を作成・更新インストールされたバージョンをロックして再現性のある環境を構築します。

pnpm dev開発サーバーを起動します

pnpm dev

http://localhost:3000を開きます。以下のような画面が表示されれば起動が完了です。
スターターサンプルを使用して Next.js アプリケーションを作成し、開発サーバーを実行することができました。

参考

ファイルの保存先

ファイルの保存先の推奨例:

ファイルをWSLファイルシステムに保存してください。Windowsコマンドライン(PowerShell、コマンドプロンプト)で作業している場合は、ファイルをWindowsファイルシステムに保存してください。たとえば、WSL プロジェクト ファイルを保存する場合は次のようになります。
・Linux ファイル システムのルート ディレクトリを使用します。/home/<user name>/Project
・Windowsファイルシステムのルートディレクトリではない:/mnt/c/Users/<user name>/Project$または C:\Users\<user name>\Project

引用元:https://learn.microsoft.com/en-us/windows/wsl/filesystems

Windows エクスプローラーで現在使用可能な Linux ディストリビューションを表示する


アドレス バーに次のコマンドを入力します。

\\wsl$

例)ホームディレクトリに「wsl」フォルダを作成して「nextjs-dashboard」アプリを作成した場合

\\wsl.localhost\Ubuntu\home\<アカウント>\wsl\nextjs-dashboard

サンプルアプリケーションの作成方法(テンプレート「create-next-app」)

プロジェクトを保存したいフォルダに移動し、次のコマンドを実行します。
例)ホームディレクトリにwslフォルダを作成して移動する(フォルダ名は任意です)

mkdir ~/wsl
cd ~/wsl

Next.js プロジェクトを新規作成するためのコマンドを実行します。
今回はデフォルトのサンプルテンプレート「create-next-app」を使ってアプリを作成します。

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

詳細:

ブラウザで http://localhost:3000 にアクセスして次のような画面が表示されたら成功 です。
*複数起動している場合、ポート番号が変更になる場合があります。

おつかれさまでした。テンプレート「create-next-app」を使ったサンプルアプリケーションを起動しました。

Next.js のテンプレート

その他のテンプレートについては、こちらからアクセスできます。

Next.jsは、モダンウェブ開発の課題を解決するための強力なフレームワークで、個人開発から大規模プロジェクトまで幅広く利用されています。

関連記事

Node.jsについては、こちらで記事にしています。

npmについては、こちらで記事にしています。

App Routerについては、こちらで記事にしています。

公式サイトとドキュメント

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

AIアーティスト | エンジニア | ライター | 最新のAI技術やトレンド、注目のモデル解説、そして実践に役立つ豊富なリソースまで、幅広い内容を記事にしています。フォローしてねヾ(^^)ノ

コメント

コメント一覧 (1件)

コメントする

目次