SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Vercel+Next.jsを活用したWebアプリケーション開発入門

ブログを作りながら学ぶ、Next.jsの便利な5つのコンポーネント(Link、Image、Head、Script、レイアウト)

Vercel+Next.jsを活用したWebアプリケーション開発入門 第3回

  • X ポスト
  • このエントリーをはてなブックマークに追加

2. Imageコンポーネント

変更前ソース

機能概要

 SEOに配慮した最適な画像表示機能を提供します。画像を読み込むときは常にこちらの機能を使うことをおすすめします。

機能詳細

  • 指定した画像をViewportに合わせ、リサイズと圧縮
  • ビルド時点ではなくオンデマンドで実行
    • 画像が10枚でも1000万枚でもビルド時間は変わりません
  • スクロールされるまで遅延読み込み
  • Googleが検索ランキングで使用するCoreWebVitalsCLSに対応

実装方法

 画像をこちらからダウンロードしてください。「public」ディレクトリの下に「images」ディレクトリを作成しダウンロードした「profile.jpg」を配置します。

 画像を使ったImageコンポーネントについて後程実装しますので、ここでの説明は割愛します。

動作確認

 割愛します。

完成したソース

3. Headコンポーネント

変更前ソース

機能概要

 タイトルやfaviconなどのメタデータを定義します。

機能詳細

 HTMLのhead部をコードで動的に変更するために使います。注意点として、外部のスクリプトを読み込む場合は、直接ここに<script>タグを埋め込まず、後述のScriptコンポーネントを利用するようにしてください。理由についても後述します。

実装方法

 「pages/posts/first-post.js」ファイルにHeadコンポーネントに関する部分を実装します。

import Link from 'next/link'; // Linkコンポーネントインポートする
import Head from 'next/head'; // Headコンポーネントをインポート

// ファイル呼び出し時のエントリーポイント
export default function FirstPost() {
  return (
    // HTMLの範囲を示す何らかのタグが必要。
    // 今回は空タグを使用しているが<div>等でもよい
    <>
      {/* タイトルを追加 */}
      <Head>
        <title>First Post</title>
      </Head>
      <h1>First Post</h1>
      <h2>
        {/* リンク先をhrefで指定する */}
        <Link href="/">
          {/* 表示したい文字を<a>タグで囲う */}
          <a>Back to home</a>
        </Link>
      </h2>
    </>
  );
}

動作確認

 http://localhost:3000/posts/first-postをブラウザで開いて、タイトルが「First Post」に変更されていることを確認します。

完成したソース

サンプルサイト

次のページ
4. Scriptコンポーネント

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Vercel+Next.jsを活用したWebアプリケーション開発入門連載記事一覧

もっと読む

この記事の著者

山本 誠樹(サイトコア株式会社)(ヤマモト マサキ)

 サイトコア株式会社 セールスグループ パートナーテクニカルイネーブルメントマネージャー。通信系システムや会員管理サービスの設計・開発から保守まで、システムエンジニアとして様々なプロジェクトに約20年従事。近年はクラウドにフォーカスしたコンサルティングを小売・流通・電力系など業種を問わず行う。201...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/16473 2022/09/14 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング