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

画像・フォント・メタデータ

なぜ学ぶか: Next.jsのコードでは<img>の代わりに<Image>が使われ、ページの先頭にmetadataという設定があります。「なぜ普通の書き方じゃないの?」の答えは自動最適化です。例で見てください。

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

import Image from "next/image";

// ページの「名刺」: タブ名・検索結果・シェア時に使われる
export const metadata = {
  title: "プロフィール | My App",
  description: "自己紹介のページです。",
};

export default function ProfilePage() {
  return (
    // 自動で圧縮・サイズ調整・遅延読み込みしてくれる賢い img
    <Image src="/avatar.png" width={120} height={120} alt="アバター画像" />
  );
}

Imageは「最適化を全部やってくれるimg」。metadataは「ページの名刺」です。

next/image=賢いimgタグ

画像を自動で圧縮し、画面サイズに合わせ、見える直前まで読み込みを遅らせてくれます。

width / height / altが必須の理由

サイズ指定は「画像読み込みで画面がガタッとずれる」のを防ぐため。altは画像が見えない人への説明文です。AIが省略していたら指摘ポイントです。

metadata=ページの名刺

例のtitleとdescriptionは、ブラウザのタブ名・検索結果・SNSシェアで使われます。公開アプリでは必ず整えます。

コード例

import Image from "next/image";
import type { Metadata } from "next";

// ページの名刺(タブ名・検索結果・SNSシェアで使われる)
export const metadata: Metadata = {
  title: "プロフィール | My App",
  description: "自己紹介のページです。",
};

export default function ProfilePage() {
  return (
    <div>
      <h1>プロフィール</h1>
      {/* 自動で圧縮・遅延読み込みされる賢い img */}
      <Image src="/avatar.png" width={120} height={120} alt="アバター画像" />
    </div>
  );
}

公開したアプリのタブ名が「Create Next App」のまま — はよくある恥ずかしいミス。metadataの設定を忘れずに。

ステップ 1 / 2

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