← inaro.devAI駆動開発 学習ツール
基礎

Linkとページ遷移

なぜ学ぶか: Next.jsのコードでは、リンクが<a href>ではなく<Link href>で書かれています。見た目はほぼ同じなのに、なぜ? 例で違いを見てください。

まずはこの例を見てみましょう

import Link from "next/link";

// ✅ アプリ内の移動は Link(必要な部分だけ差し替える → 速い)
<Link href="/blog">ブログ</Link>

// 外部サイトへは普通の a タグでよい
<a href="https://example.com">外部サイト</a>

// ❌ もったいない: アプリ内なのに a タグ(毎回ページ全体を読み直す)
<a href="/blog">ブログ</a>

使い分けは「アプリ内はLink、外部サイトはaタグ」。これだけです。

Link=Next.js版のaタグ

import Link from "next/link"して使います。書き方はaタグとほぼ同じです。

違いは「ページを丸ごと読み直さない」こと

aタグはページ全体を再読み込みしますが、Linkは必要な部分だけ差し替えます。速く、入力途中の内容も保たれます。

AIのコードのチェックポイント

アプリ内のリンクがaタグになっていたら、Linkへの修正を指示しましょう。動きはしますが、速さを捨てています。

コード例

import Link from "next/link";

function Nav() {
  return (
    <nav>
      {/* アプリ内の移動は Link(高速・状態が保たれる) */}
      <Link href="/">ホーム</Link>
      <Link href="/blog">ブログ</Link>

      {/* 外部サイトへは普通の a タグでよい */}
      <a href="https://docs.example.com" target="_blank" rel="noreferrer">ドキュメント</a>
    </nav>
  );
}

このlearnアプリのトピック一覧のリンクもLinkで書かれています。ページ移動が速いのはそのためです。

ステップ 1 / 2

※ カリキュラムの内容はAIが生成しており、誤りが含まれる場合があります。正確な情報は公式ドキュメント等でご確認ください。