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


Next.js・microCMS 初心者ノート

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

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

Next.jsとmicroCMSを使ってWebサイトを作っていると、 LinkImagenotFound()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日対応、簡単設定、マルチプラットフォーム対応で人件費・工数を削減。今すぐ無料で相談する

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