Next.jsに用意されている便利な機能とは?初心者が知っておきたい基本機能を紹介


Next.js・microCMS 初心者ノート

Next.jsに用意されている便利な機能とは? 初心者が知っておきたい基本機能を紹介

Next.jsに用意されている便利な機能とは?初心者が知っておきたい基本機能を紹介

Next.jsとmicroCMSを使ってWebサイトを作っていると、 Link、Image、 notFound()、useRouter()など、 HTMLだけでは見かけなかった名前が登場します。
今回は、それぞれの詳しい使い方に入る前に、 「どのような機能で、どんな場面に使うのか」を 初心者目線でやさしく整理します。

Next.js Link Image notFound useRouter 初心者向け
01

Next.jsには便利な機能が用意されている

HTMLとCSSだけでWebページを作っていたときは、 ページを移動するにはaタグ、 画像を表示するにはimgタグを使っていました。

HTMLでの基本的な書き方
<a href="/blog/">
  ブログを見る
</a>

<img
  src="/images/photo.jpg"
  alt="記事の写真"
>

Next.jsでもHTMLの要素は使えますが、 より快適なページ移動や画像表示を実現するために、 Next.js独自の機能が用意されています。

Next.js Next.jsで見かける書き方
import Link from "next/link";
import Image from "next/image";

<Link href="/blog">
  ブログを見る
</Link>

<Image
  src="/images/photo.jpg"
  alt="記事の写真"
  width={800}
  height={500}
/>
?

同じことができるように見えるけれど……

HTMLのタグとは何が違うのでしょうか。
どのような場面で使い分けるのでしょうか。
初めて見ると、名前だけでは役割が分かりにくく感じました。

まずは細かな仕様を覚えるのではなく、 それぞれが何を担当しているのかを見ていきます。

✿

今回は使い方を詳しく掘り下げるのではなく、
「Next.jsにはこのような便利な機能がある」 という全体像をつかむ記事です。

02

今回紹介する4つの便利な機能

今回のNext.jsとmicroCMSを使ったWebサイト制作では、 主に次の4つの機能を使用しました。

02
🖼
Image

画像を見やすく、効率よく表示するための機能です。

03
404
notFound()

ページや記事が存在しないときに使う機能です。

04
➜
useRouter()

ボタンや処理をきっかけにページを移動します。

4つともNext.jsでよく使う便利な機能ですが、 厳密には同じ種類ではありません。

名前
種類
主な役割
Link
コンポーネント
ページへのリンクを作る
Image
コンポーネント
画像を表示する
notFound()
関数
404ページを表示する
useRouter()
Hook
処理からページを移動する
POINT

厳密には種類が異なりますが、 この記事ではまとめて 「Next.jsが提供する便利な機能」として紹介します。

04

Imageは画像を表示するための機能

🖼
COMPONENT Image

Next.jsで画像を表示するためのコンポーネントです。

Imageは、 通常のimgタグと同じように画像を表示します。

さらに、画像の大きさや読み込み方を調整し、 ページを快適に表示するための仕組みも持っています。

Image 画像表示の例
import Image from "next/image";

<Image
  src="/images/photo.jpg"
  alt="記事の写真"
  width={800}
  height={500}
/>
使用する場面 記事画像やメインビジュアルを表示するとき
例 ブログ一覧のサムネイル画像
05

notFound()は404を表示するための機能

404
FUNCTION notFound()

ページや記事が存在しないことを伝える関数です。

microCMSの記事詳細ページでは、 URLに指定された記事が存在しない場合があります。

そのようなときにnotFound()を使うと、 404ページへ切り替えられます。

notFound 記事がない場合の例
if (!article) {
  notFound();
}
使用する場面 記事やページが存在しないとき
例 削除された記事URLへアクセスしたとき

実際に表示される404画面の内容は、 not-found.tsxというファイルで作ります。

06

useRouter()は処理からページを移動する機能

➜
HOOK useRouter()

JavaScriptの処理からページを移動するためのHookです。

Linkは、 画面に表示されたリンクをユーザーがクリックして移動します。

一方のuseRouter()は、 ボタン操作やフォーム送信などの処理をきっかけに ページを移動したいときに使います。

useRouter ページ移動の例
const router = useRouter();

router.push("/contact");
使用する場面 処理が終わったあとにページを移動するとき
例 検索フォーム送信後に検索結果へ移動
07

どのように使い分ける?

4つの機能は名前だけを見ると難しく感じますが、 使用する場面で分けると分かりやすくなります。

サイト内の別ページへ移動するリンクを置きたい
使う機能 Link
記事の写真やサムネイル画像を表示したい
使う機能 Image
指定された記事やページが存在しない
使う機能 notFound()
ボタンやフォームの処理後にページを移動したい
使う機能 useRouter()
✿

「コンポーネント」「関数」「Hook」という分類よりも、
最初は「何をしたいときに使うか」で覚えると 理解しやすくなります。

08

microCMSサイトではどこで使う?

今回制作したNext.jsとmicroCMSのWebサイトでは、 4つの機能を次のような場面で使用しました。

ブログ一覧
🖼
Image

記事のサムネイル画像を表示します。

記事カード
🔗
Link

カードから記事詳細ページへ移動します。

記事詳細
404
notFound()

記事が存在しない場合に404を表示します。

検索フォーム
➜
useRouter()

検索後に結果ページへ移動します。

今回のポイント

4つの機能は単独で使うだけでなく、 一つのWebサイトの中で役割を分担しながら使われています。

09

詳しい内容は個別記事で解説します

この記事では、 4つの機能の役割と使用場面を簡単に紹介しました。

それぞれの詳しい仕組みやコードについては、 個別の記事として一つずつ取り上げる予定です。

ARTICLE 01
🔗

HTMLのaタグとNext.jsのLinkは何が違う?

ページ全体の再読み込みや、 Next.jsのページ遷移について整理します。

ARTICLE 02
🖼

imgタグとNext.jsのImageは何が違う?

widthとheight、画像最適化、 外部画像の設定などを解説します。

ARTICLE 03
404

notFound()とnot-found.tsxの関係とは?

404を表示する仕組みと、 オリジナル404ページの作り方を整理します。

ARTICLE 04
➜

useRouter()とは?Linkとの違いと使い方

push、replace、backなど、 ページ移動に使う方法を解説します。

シリーズ構成

この記事を最初の案内ページにして、 それぞれの個別記事へつなげる構成にできます。

10

まとめ:まずは役割を知るところから

Next.jsには、 Webサイト制作を助けてくれる便利な機能が あらかじめ用意されています。

今回は、実際のNext.jsとmicroCMSのサイト制作で使用した 4つの機能を紹介しました。

今回覚えておきたいこと

  • Linkはサイト内のページへ移動する
  • Imageは画像を表示する
  • notFound()は404ページへ切り替える
  • useRouter()は処理からページを移動する
  • 4つは厳密にはコンポーネント、関数、Hookに分かれる
  • 最初は種類よりも使用場面で覚えると分かりやすい
ページ移動 Link
画像表示 Image
404表示 notFound()
処理後の移動 useRouter()

最初から詳しい仕様をすべて覚えようとすると、 情報が多くなりすぎて混乱してしまいます。

まずは「このようなことができる」と知り、 実際に必要になった機能から 個別に詳しく学んでいくのが分かりやすいと感じました。

Next.js・microCMS初心者の学習記録 便利な機能を少しずつ知ることで、
Next.jsのコードが読みやすくなっていきます。


AILPENGINE。自動進化型AI-LP。公開後も、成果に合わせて進化する! 行動計測、分析、構成改善、成果最大化。自前計測、CTA位置最適化、レポート可視化。LP改善を相談する(相談無料)。

日本ドラフトのAIチャットボットで問い合わせ対応を効率化・自動化!24時間365日対応、簡単設定、マルチプラットフォーム対応で人件費・工数を削減。今すぐ無料で相談する

※当社は、当サイトに掲載する情報について、正確性・完全性・有用性その他一切の事項を保証するものではありません。
また、当サイトの情報をご利用いただいたことにより生じた損害、ならびに当サイトからリンクまたはバナー等を通じて移動した外部サイトにおいて提供される情報・サービス等により生じた損害について、当社は一切の責任を負いかねます。