
【Next.js】Next.jsとは?環境構築やHello World表示までをご紹介

目次
今回はReactのフレームワークであるNext.jsについて、環境構築からHello World表示までをご紹介します。
Reactについては既に何記事か投稿しているので、そちらも合わせてご覧ください。
【React.js】React.jsとは?環境構築やHello World表示までをご紹介
https://www.dailyupblog.com/web_development/1830/
【React.js】React.jsにおけるコンポーネントとpropsの使い方をご紹介!
https://www.dailyupblog.com/web_development/1860/
【React.js】useStateとuseEffectの使い方をご紹介(React hooksを学ぶ)
https://www.dailyupblog.com/web_development/1888/
Next.jsとは?
Next.jsとは、Reactの機能を拡張したフレームワークです。
なので、基本的なルールはReactと同じですが、SPA(シングルページアプリケーション)の開発がメインのReactに対して、Next.jsでは様々な便利な機能を使うことができます。
その代表的なものの一つが、SSR(サーバーサイドレンダリング)やSG(静的サイト生成)などの様々なレンダリング手法での開発が可能な点です。
SSRはサーバー側でレンダリングを行います。
なので、常に最新のデータでページが構成され、ビルドの時間を必要としません。
サーバー側でレンダリングされるため、SEOやOGPを向上させるメリットがあります。
ただ、リクエストを受けてから全ての処理が行われるため、SGより遅いです。
SGはビルド時に前もってレンダリング(プリレンダリング)を行います。
なので、リクエスト時には、プリレンダリングされているものを返すだけなので、早いです。
静的なページになるので、データの更新などはできません。
他にもSGを利用しながらも、一定時間ごとにデータの再取得を行えるISR(Incremental Static Regeneration)などもあります。
このようにNext.jsでは様々なレンダリング手法で開発することが可能で、ページ単位でこれらを柔軟に選択することができます。
他にもNext.jsでは、ページ間リンクを自動で生成してくれたり、豊富なCSSフレームワークが存在したり、コンポーネントベースのアーキテクチャを採用しているため、コードを再利用可能な単位で管理でき、修正や機能追加が容易で合ったりと、様々なメリットがあります。
環境構築
それでは早速Next.jsを動かしてみましょう。
本記事執筆時のNextの最新バージョンは、15.3.2です。
Node.jsのインストール
Next.jsはReact同様にNode環境が必要です。
未インストールの方は下記からインストールしましょう。
https://nodejs.org/ja/download/
インストールが完了したら、コマンドプロンプト(Macならターミナル)を開いて、下記コマンドを実行して、nodeがインストールされたか確認してください。
node -v
バージョンが表示されれば、OKです。
nodeコマンドが使えない場合、パスを通す必要があるので、その場合は下記手順に従って、パスを通してください。
Windows10の場合
https://qiita.com/shuhey/items/7ee0d25f14a997c9e285
Macの場合
https://qiita.com/nbkn/items/01a11392921119fa0153
開発プロジェクトの作成
Nodeのインストールが完了したら、早速Next.jsのプロジェクトを作成します。
ターミナルを開いて、プロジェクトフォルダを作りたいディレクトリに移動したら、下記コマンドを実行しましょう。
npx create-next-app@latest
すると下記のような質問がされます。今回は以下の例のように設定しました。
✔ What is your project named? … my-app(プロジェクト名)
✔ Would you like to use TypeScript? … Yes(TypeScriptを利用するか)
✔ Which linter would you like to use? › ESLint(ESLintを利用するか)
✔ Would you like to use Tailwind CSS? … Yes(Tailwind CSSを利用するか)
✔ Would you like your code inside a `src/` directory? … Yes(/srcフォルダを作成するか)
✔ Would you like to use App Router? (recommended) … Yes(App Routerを利用するか)
✔ Would you like to use Turbopack? (recommended) … No(Turbopackを利用するか)
✔ Would you like to customize the import alias (`@/*` by default)? … No(importエイリアスをカスタマイズするか)
上記設定を完了すると、プロジェクトフォルダが作成されます。
Nextアプリを起動
早速アプリを起動してみましょう。
下記コマンドを実行してください。
npm run dev
そしてブラウザで「http://localhost:3000」にアクセスすると、下記画面が表示されるはずです。

プロジェクトフォルダーの内容
Nextのプロジェクトフォルダーのフォルダー/ファイル構成は下記の通りです。
.
├── /node_modules(インストールされたライブラリ)
├── /public(公開フォルダ)
├── /src(ソースコードの配置先)
│ └── /app(ページコンポーネント)
├── .eslint.config.mjs(ESLint設定ファイル)
├── next-env.d.ts(型の環境定義ファイル)
├── .gitignore(指定データを管理外に設定するGitの設定ファイル)
├── tsconfig.json(typescript設定ファイル)
├── next.onfing.ts(Next.jsの設定ファイル)
├── package.json(npmの設定ファイル)
└── README.md(Readmeファイル)
ただ、Nextでは、srcディレクトリ内のappフォルダ直下にページコンポーネントのファイルを格納します。
それ以外は基本Reactと同様で、srcディレクトリ内にcomponentsフォルダやlibフォルダ、apiフォルダなどを格納していくことになるでしょう。
Hello Worldを表示する
それでは、Nextアプリ上で「Hello World」を表示して見ましょう。
「src」>「app」>「page.tsx」ファイルを開きましょう。
returnの中の5行目から101行目までを全て削除し、下記のようにコードを追記します。
page.tsx
export default function Home() {
return <p>Hello World</p>;
}
ブラウザで確認すると、下記のようにHello Worldが表示されているはずです。
