カテゴリ: Next.js 更新日: 2026/04/10

Next.js Linkコンポーネントの使い方を初心者向けに徹底解説!Next.jsでページ遷移を簡単に実装する方法

Next.js Linkコンポーネントとは?基本の使い方を解説
Next.js Linkコンポーネントとは?基本の使い方を解説

先生と生徒の会話形式で理解しよう

1. Next.jsのLinkコンポーネントとは?

1. Next.jsのLinkコンポーネントとは?
1. Next.jsのLinkコンポーネントとは?

Next.jsのコンポーネントは、Reactのコンポーネントとして提供されるページ遷移用のタグです。通常のHTMLのタグと同じように使えますが、Next.jsはを使うことで、クライアントサイドでページを読み込むため、ページの遷移が高速になります。つまり、ユーザーがクリックしたときにページ全体を再読み込みせず、必要な部分だけを更新してスムーズに表示できます。

2. 基本的なLinkの使い方

2. 基本的なLinkの使い方
2. 基本的なLinkの使い方

まずは簡単な例での基本的な使い方を見てみましょう。


import Link from "next/link";

function Home() {
  return (
    <div>
      <h1>ホームページ</h1>
      <Link href="/about">Aboutページへ移動</Link>
    </div>
  );
}

export default Home;
(画面に「ホームページ」と表示され、LinkをクリックするとAboutページに移動します)

3. Linkコンポーネントにスタイルを適用する

3. Linkコンポーネントにスタイルを適用する
3. Linkコンポーネントにスタイルを適用する

Linkは通常のタグのようにclassNameを使ってスタイルを付けることができます。


import Link from "next/link";

function Home() {
  return (
    <div>
      <h1>ホームページ</h1>
      <Link href="/about">
        <a className="btn btn-primary">Aboutページへ</a>
      </Link>
    </div>
  );
}

export default Home;
(リンクがボタン風に表示され、クリックするとAboutページに移動します)

4. Linkの中で文字列だけでなく要素を使う

4. Linkの中で文字列だけでなく要素を使う
4. Linkの中で文字列だけでなく要素を使う

Linkの中には文字列だけでなく、画像やアイコンなどの要素も入れることができます。


import Link from "next/link";

function Home() {
  return (
    <div>
      <h1>ホームページ</h1>
      <Link href="/contact">
        <div style={{border: "1px solid black", padding: "10px"}}>
          Contactページへ
        </div>
      </Link>
    </div>
  );
}

export default Home;
(囲い付きのボックスが表示され、クリックするとContactページに移動します)

5. Linkでクエリパラメータを渡す方法

5. Linkでクエリパラメータを渡す方法
5. Linkでクエリパラメータを渡す方法

Next.jsではを使って、ページにパラメータを渡すこともできます。


import Link from "next/link";

function Home() {
  return (
    <div>
      <h1>ホームページ</h1>
      <Link href={{ pathname: "/profile", query: { id: 123 } }}>
        プロフィールページへ
      </Link>
    </div>
  );
}

export default Home;
(クリックすると/profile?id=123のページに移動し、パラメータを受け取ることができます)

6. Linkとルーティングの組み合わせで便利にページ遷移

6. Linkとルーティングの組み合わせで便利にページ遷移
6. Linkとルーティングの組み合わせで便利にページ遷移

Linkを使うことで、Next.jsのルーティングと組み合わせたページ遷移が簡単になります。例えばナビゲーションメニューを作る場合、Linkで各ページにスムーズに移動できます。


import Link from "next/link";

function Navbar() {
  return (
    <nav>
      <Link href="/">ホーム</Link> | 
      <Link href="/about">About</Link> | 
      <Link href="/contact">Contact</Link>
    </nav>
  );
}

export default Navbar;
(ナビゲーションバーが表示され、クリックすると各ページに高速に移動します)

7. Linkを使う際の注意点

7. Linkを使う際の注意点
7. Linkを使う際の注意点

Linkの中でタグをネストして使うとエラーになる場合があります。Next.js 13以降ではだけで完結させるか、aタグにclassNameやスタイルを付ける場合はの中に直接置くようにしましょう。また、外部リンクの場合はではなく通常のタグを使用します。

8. Linkコンポーネントを使うメリットまとめ

8. Linkコンポーネントを使うメリットまとめ
8. Linkコンポーネントを使うメリットまとめ

Linkを使うことで、ページ遷移が高速になりユーザー体験が向上します。また、クエリパラメータの受け渡しやスタイルのカスタマイズも簡単に行えます。ナビゲーションやボタンなど、様々な場面で活用できるので、Next.jsでのWeb開発には必須のコンポーネントです。

まとめ

まとめ
まとめ

本記事では、Next.jsにおけるコンポーネントの基本的な使い方から、スタイルの適用方法、要素やクエリパラメータを渡す応用的な使い方まで詳しく解説しました。Next.jsのは、従来のHTMLのタグとは異なり、クライアントサイドでページ遷移を行うため、ページ全体を再読み込みすることなくスムーズにコンテンツを表示できます。これによりユーザー体験が格段に向上し、特にナビゲーションバーやボタンリンクのような頻繁に利用される遷移において、その効果は顕著です。また、LinkコンポーネントはReactコンポーネントとして扱えるため、classNameやstyleを用いたデザインのカスタマイズも容易で、サイト全体の統一感を保ちながら柔軟なUI構築が可能です。

さらに、Linkを使用することで、ページ間でのクエリパラメータの受け渡しや、リンク内にテキストだけでなく画像やアイコン、囲み要素を入れることもできるため、よりリッチなUIを簡単に実現できます。Next.js 13以降ではコンポーネントの使用方法に若干の変更があるものの、基本的な概念は変わらず、外部リンク以外の内部遷移において最も推奨される方法です。これにより、WebサイトやWebアプリケーションのレスポンス速度を向上させつつ、SEOにおいてもページ遷移のスムーズさが評価されやすく、ユーザーが快適にコンテンツを閲覧できるようになります。

実際のサンプルコードを通して、コンポーネントの基本から応用までを確認しました。例えば、ナビゲーションメニューを作成する場合、以下のようにLinkを活用することで、各ページへの遷移が高速でスムーズになります。


import Link from "next/link";

function Navbar() {
  return (
    <nav className="d-flex gap-3 p-2">
      <Link href="/" className="btn btn-outline-primary">ホーム</Link>
      <Link href="/about" className="btn btn-outline-success">About</Link>
      <Link href="/contact" className="btn btn-outline-info">Contact</Link>
    </nav>
  );
}

export default Navbar;
(ナビゲーションバーが表示され、クリックすると各ページに高速に移動します)

このようにコンポーネントを適切に利用することで、ReactベースのNext.jsアプリケーションにおいて、ユーザーが快適に操作できるUXを簡単に実現できます。また、スタイルやクエリパラメータの渡し方を工夫することで、より柔軟で機能的なページ構成が可能となり、Web開発の効率化にもつながります。

先生と生徒の振り返り会話

生徒

「Linkコンポーネントを使うとページ遷移が速くなる理由はなんですか?」

先生

「Next.jsのはクライアントサイドでページの必要な部分だけを読み込むので、ページ全体を再読み込みせずに表示できます。だから遷移が速く感じられるのです。」

生徒

「クエリパラメータも渡せると聞きましたが、どう使うんですか?」

先生

「Linkのhrefにオブジェクトを渡すと、pathnameとqueryを指定できます。例えばプロフィールページにidを渡す場合、{'{ pathname: "/profile", query: { id: 123 } }'}と書くことで対応可能です。」

生徒

「Linkの中に画像やボックスも入れられるんですね。ボタンだけじゃなくてもいいんですか?」

先生

「はい、Linkの中には任意のReact要素を入れられます。画像や囲み要素もOKです。これでリッチなUIを簡単に作れます。」

生徒

「まとめると、Linkは内部遷移用で高速、スタイルや要素のカスタマイズも自由、パラメータも渡せる、と覚えればいいですか?」

先生

「その通りです。Next.jsで効率よくページ遷移を実装したいなら、Linkを中心に考えると良いでしょう。」

関連記事:

関連記事なし

カテゴリの一覧へ
新着記事
New1
Next.js
Next.js Linkコンポーネントの使い方を初心者向けに徹底解説!Next.jsでページ遷移を簡単に実装する方法
New2
Next.js
Next.js Catch-all Routesで複雑なURL構造を簡単に実現する方法!初心者向け解説
New3
React
Fetch APIとは?Reactでの使い方をやさしく解説|サーバー通信の基本を理解しよう
New4
React
ReactのPropsの使い方を完全ガイド!初心者でもわかる関数を渡して子から親にイベント通知する方法
人気記事
No.1
Java&Spring記事人気No1
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.2
Java&Spring記事人気No2
React
ReactとTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.3
Java&Spring記事人気No3
React
Reactの学習ロードマップ!初心者が最短で習得する流れを完全ガイド
No.4
Java&Spring記事人気No4
React
create-react-appでReactプロジェクトを作成する手順を初心者向けに完全解説!
No.5
Java&Spring記事人気No5
React
React Context APIのデバッグ方法を完全解説!React DevToolsで中身を丸見えにする方法
No.6
Java&Spring記事人気No6
Next.js
Next.js自動ルーティングを初心者向けに解説!Next.jsのページ遷移の基本を理解する
No.7
Java&Spring記事人気No7
React
React開発におすすめのVSCode拡張機能まとめ!初心者でもすぐ使える便利ツール紹介
No.8
Java&Spring記事人気No8
React
React Routerとは?シングルページアプリのルーティングを初心者向けにわかりやすく解説