はじめに
この記事では、近年、モダンフロントエンド開発において最も人気の高いVercel社が提供しているオープンソースのWebアプリケーションフレームである、「Next.js」について解説します。ウェブサイトの可用性と効率性を高めるためには、Next.jsの理解と適切なフレームワークや技術選択が重要です。
Next.jsとは
Next.jsは、Vercel社が開発したReactのフレームワークです。Reactのフレームワークとは、Reactの機能を拡張したり、開発を効率化したりするためのものです。Next.jsは、Reactのフレームワークの中でも特に人気が高く、多くのWebアプリケーションの開発に利用されています。
Next.jsでは画像のレンダリング(画像や映像、テキスト)を最適化してくれます。画像を最適化するメリットは、ページの読み込み速度が高速になることです。読み込み速度の高速化はSEO対策にも効果的です。
Next.jsの特徴
Next.jsの特徴は大きく分けて4つあります。
1.プレレンダリング
プレレンダリングとは、事前にHTMLを生成し、レンダリングすることを言います。 Next.jsの元となっているReactではレンダリングはユーザーのページアクセス時に行われます。 しかし、プレレンダリングしてあるページであれば事前に生成しているHTMLファイルを出力するため、 表示速度が速くなります。
2.SEOに対するポジティブな影響をもたらす。
Next.jsではプレレンダリング方式により事前にHTMLを生成していることで クローラーにサイトの内容をすべて見せることが可能になります。 そのため、SEO対策にとても有効です。
3.二種類のプレレンダリング方式(SSG,SSR)
Next.jsにはSSGとSSRの二種類のプレレンダリング方式があります。 どちらにもメリット、デメリットがありますので、目的とするサイトの用途によってうまく使い分けましょう。
-
SSGとは
SSGとは
S
taticS
iteG
eneratorの略称で日本語では静的生成です。ユーザーからアクセスする前に、あらかじめ静的なHTMLファイルを生成しておき、ユーザーからのリクエストの際にHTMLファイルを返すレンダリング方式です。事前に生成してあるため、表示速度が速く、セキュリティ上のリスクも低いとされています。 なお、Next.js公式ではSSGの使用を推奨しております。SSGはビルド後に変更を行わないページで主に使われています。 使用例:
- ブログの記事
- Q&A、お問い合わせページ
- 一覧画面
-
SSRとは
SSRとは
S
erverS
ideR
enderingの略称です。クライアント側でレンダリングするのではなく、サーバー側でレンダリングします。 リクエストを受けたサーバーが必要なデーターを取得した後にHTMLを生成し、クライアントに返却します。 ユーザー側のパソコンのスペックに左右されずにページを最速で表示することが可能になります。
SSGとSSRどちらを選べばいい?
ブログやコーポレートサイトなどの静的なコンテンツを扱うサイトでは、SSGが適しています。SSGを利用することで、ページの読み込み速度を向上させ、SEO対策の効果を高めることができます。
ウェブアプリケーションなどの動的コンテンツを扱うサイトでは、SSRが適しています。SSRを利用することで、ユーザー側のパソコンのスペックに左右されずにページを最速で表示することができます。
また、SSGとSSRを組み合わせて利用する方法もあります。例えば、ブログのトップページやカテゴリページなどはSSGで生成し、記事ページなどはSSRで生成することで、両方のメリットを享受することができます。
Next.js開発のステップ
1. Next.jsのインストール方法
Next.jsをインストールする前にNode.jsが必要なため公式サイトからダウンロードしましょう。
2.create-next-appをインストールしよう
ターミナルでインストールコマンドを入力
npm install -g create-next-app
インストール終了後、下記のコマンドを入力して、バージョンを表示されれば成功です。
create-next-app --version
3. プロジェクトのひな形を作成する
cd
コマンドでプロジェクトを作成したいディレクトリに移動し、下記コマンドでプロジェクトのひな形を作成しましょう。
npx create-next-app プロジェクト名
create-next-appとは?
create-next-appは、Next.jsのプロジェクトを簡単に作成するためのコマンドラインツールです。npmやyarnなどのパッケージマネージャーを使ってインストールすることができます。
create-next-appコマンドを実行すると、Next.jsのプロジェクトのひな形が作成されます。ひな形には、以下のファイルやフォルダが含まれています。
- package.json:npmパッケージの管理を行うファイル
- next.config.js:Next.jsの設定を行うファイル
- pages:ページのソースコードが格納されるフォルダ
- public:静的ファイルが格納されるフォルダ
create-next-appコマンドを実行する際、プロジェクト名を指定することができます。プロジェクト名を指定すると、作成されるプロジェクトのディレクトリ名と、ブラウザでアクセスする際に使用するURLのホスト名になります。
4. サーバーを立ち上げよう
下記コマンドでサーバーを立ち上げることができます。
npm run dev
このコマンドはローカルでサーバーを立ち上げる際のコマンドです。よく使うので覚えましょう。
5. サーバーにアクセスしましょう
http://localhost:3000
にアクセスができたら完了です。
まとめ
Next.jsは、高速なページの読み込みとSEO対策に優れた、モダンフロントエンド開発に欠かせないフレームワークです。
特徴
- プレレンダリングにより、ページの読み込み速度を大幅に向上させます。
- 生成されたHTMLは検索エンジンにより容易にクロールされ、SEOに非常に有効です。
- SSGとSSRの両方を提供し、プロジェクトのニーズに応じて最適なレンダリング方法を選べます。
活用シーン
- ブログ
- コーポレートサイト
- ウェブアプリケーション
- SEOを重視するサイト
Next.jsは、さまざまなニーズに対応できる柔軟なフレームワークです。Web開発において、より速く、より効果的なウェブサイトやアプリケーションを構築したい場合に、ぜひ検討してみてください。
エンベーダー編集部
エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。
関連記事
2020.02.25
完全未経験からエンジニアを目指す爆速勉強法
USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
- キャリア・学習法
- エンジニア
2024.03.31
【超入門】Reactの基礎を30分で学べる!インストールから基本コンポーネントまで
この記事は、フロントエンドエンジニアを目指したいけど何をすればいいかわからないといった人に、とりあえずReactという技術を用いて雰囲気を知ってもらうために作成しました。
- エンジニア
- フロントエンド
- ハンズオン
- React
- JavaScript
2024.04.01
15分で理解!エンジニア初心者向け Vue.js導入ガイド
Vue.jsは、Webアプリケーションのユーザーインターフェース(UI)を構築するためのプログレッシブJavaScriptフレームワークです。簡単に使い始められる一方で、複雑なアプリケーションにも柔軟に対応できるのが特徴です。
- エンジニア
- フロントエンド
- vue
2024.03.24
JavaScriptって何?レベルの初心者がとりあえず触ってみるハンズオン
このハンズオンを通じて、プログラミング初心者やJavaScriptに苦手意識を持つ方でも、JavaScriptの使い方を基礎から簡単に学べます。特別な経験や知識は一切必要ありません。パソコンとインターネットの基本操作ができれば、準備は完了です。わからないことがあっても大丈夫。一旦はこういうものだと思って進めてみてください。
- ハンズオン
- JavaScript
- フロントエンド