画像・フォント・メタデータ
なぜ学ぶか: 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が生成しており、誤りが含まれる場合があります。正確な情報は公式ドキュメント等でご確認ください。