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が生成しており、誤りが含まれる場合があります。正確な情報は公式ドキュメント等でご確認ください。