はじめに
この記事では、近年、モダンフロントエンド開発において最も人気の高い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開発において、より速く、より効果的なウェブサイトやアプリケーションを構築したい場合に、ぜひ検討してみてください。
【番外編】USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
プログラミング塾に半年通えば、一人前になれると思っているあなた。それ、勘違いですよ。「なぜ間違いなの?」「正しい勉強法とは何なの?」ITを学び始める全ての人に知って欲しい。そう思って書きました。是非読んでみてください。
「フリーランスエンジニア」
近年やっと世間に浸透した言葉だ。ひと昔まえ、終身雇用は当たり前で、大企業に就職することは一種のステータスだった。しかし、そんな時代も終わり「優秀な人材は転職する」ことが当たり前の時代となる。フリーランスエンジニアに高価値が付く現在、ネットを見ると「未経験でも年収400万以上」などと書いてある。これに釣られて、多くの人がフリーランスになろうとITの世界に入ってきている。私もその中の1人だ。数年前、USBも知らない状態からITの世界に没入し、そこから約2年間、毎日勉学を行なった。他人の何十倍も努力した。そして、企業研修やIT塾で数多くの受講生の指導経験も得た。そこで私は、伸びるエンジニアとそうでないエンジニアをたくさん見てきた。そして、稼げるエンジニア、稼げないエンジニアを見てきた。
「成功する人とそうでない人の違いは何か?」
私が出した答えは、「量産型エンジニアか否か」である。今のエンジニア市場には、量産型エンジニアが溢れている!!ここでの量産型エンジニアの定義は以下の通りである。
比較的簡単に学習可能なWebフレームワーク(WordPress, Rails)やPython等の知識はあるが、ITの基本概念を理解していないため、単調な作業しかこなすことができないエンジニアのこと。
多くの人がフリーランスエンジニアを目指す時代に中途半端な知識や技術力でこの世界に飛び込むと返って過酷な労働条件で働くことになる。そこで、エンジニアを目指すあなたがどう学習していくべきかを私の経験を交えて書こうと思った。続きはこちらから、、、、
エンベーダー編集部
エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。
関連記事
2020.02.25
完全未経験からエンジニアを目指す爆速勉強法
USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
- キャリア・学習法
- エンジニア
2024.07.15
Reactの基本、propsを理解する
フロントエンドエンジニアになりたい、初めてReactを学ぶ方に向けて、この記事ではReactの基本であるpropsについて解説します。propsはReactアプリケーションを構成する上で、必須の知識です。propsの基本を押さえておくことで、これからのReact学習の理解度が深まります。基本を学び、フロントエンドエンジニアへの道を進んでいきましょう!
- React
- フロントエンド
2024.10.28
Reactの基本、useCallbackを理解しよう
useCallbackは、関数をメモ化し、再レンダリング時に不必要な関数の再作成を避けることができる仕組みです。
- React
- フロントエンド
2024.08.01
Reactの基本、useStateを理解しよう
フロントエンドエンジニアを目指す方や、初めてReactを学ぶ方に向けて、この記事ではReact Hooksの中でも使用頻度の高いuseStateについて解説します。コンポーネントの状態管理は、アプリケーションを構成する上で必須の知識です。useStateの基本を押さえておくことで、これからのReact学習の理解度が深まります。基本を学び、フロントエンドエンジニアへの道を進んでいきましょう!
- React
- フロントエンド