Next.jsでYouTubeの埋め込み!高速読み込み
Google Tag ManagerのタグをどうやってNext.jsで読み込めせようか調べていたところ、
Next.js公式で@next/third-parties
というライブラリを提供していたので、
その使い方を紹介しようと思います。
@next/third-parties
は、Next.jsアプリケーションで一般的なサードパーティライブラリの読み込みパフォーマンスと開発者エクスペリエンスを向上させるためのコンポーネントとユーティリティのコレクションを提供するライブラリです。
@next/third-parties
が提供するすべてのサードパーティの統合は、パフォーマンスと利便性の向上のために最適化されています。
インストール
はじめるには、@next/third-parties
ライブラリをインストールします。
npm install @next/third-parties@latest
@next/third-parties
は現在実験的なライブラリであり、積極的に開発が進行中です。
より多くのサードパーティの統合を追加する作業中ですので、最新またはキャナリーフラグを使用してインストールすることをお勧めします。
YouTube Embed コンポーネント
YouTubeEmbed
コンポーネントを使用すると、YouTubeの埋め込みを読み込んで表示することができます。
このコンポーネントは、実質的にはlite-youtube-embed
を使用して高速に読み込まれます。
// app/page.js
import { YouTubeEmbed } from '@next/third-parties/google'
export default function Page() {
return <YouTubeEmbed videoid="ogfYd705cRs" height={400} params="controls=0" />
}
videoId
は YouTube の URL に含まれていて、次のような箇所に埋まっている値です。
https://www.youtube.com/watch?v={videoId}
https://youtu.be/{videoId}
https://www.youtube.com/embed/{videoId}
コンポーネントのオプション
YouTube Embed
に渡すオプションのリストについては、次のとおりです。
videoid (必須): YouTubeビデオのID。
width (オプション): ビデオコンテナの幅。デフォルトはautoです。
height (オプション): ビデオコンテナの高さ。デフォルトはautoです。
playlabel (オプション): アクセシビリティのための再生ボタンの視覚的に非表示のラベル。
params (オプション): ここで定義されたビデオプレイヤーのパラメータ。パラメータはクエリパラメータ文字列として渡されます。例:
params="controls=0&start=10&end=30"
style (オプション): ビデオコンテナにスタイルを適用するために使用されます。