useAmp
Examples
AMP 対応は私たちの高度な機能の 1 つで、ここで AMP について詳しく読むことができます。
AMP を有効にするには、以下の config をページに追加してください:
pages/index.js
export const config = { amp: true }
amp
config は以下の値を受け入れます:
true
- そのページは AMP 専用となります'hybrid'
- このページには 2 つの Version があり、一つは AMP、もう一つは HTML となります。
amp
や config について詳しく知りたい場合は、以下のセクションをお読みください。
AMP First Page
次の例をご覧ください:
pages/about.js
export const config = { amp: true }
function About(props) {
return <h3>My AMP About Page!</h3>
}
export default About
上記のページは AMP-only ページであり、それはつまり:
- そのページには Next.js や React の Client サイドの runtime がありません
- このページは、AMP キャッシュと同じ変換を適用する最適化ツールであるAMP Optimizer によって自動的に最適化され、パフォーマンスは最大 42%向上します
- このページには、ユーザーがアクセス可能な(最適化された)version のページと、検索エンジンがインデックス化可能な(unoptimized)version のページがあります。
Hybrid AMP Page
次の例をご覧ください:
pages/about.js
import { useAmp } from 'next/amp'
export const config = { amp: 'hybrid' }
function About(props) {
const isAmp = useAmp()
return (
<div>
<h3>My AMP About Page!</h3>
{isAmp ? (
<amp-img
width="300"
height="300"
src="/my-img.jpg"
alt="a cool image"
layout="responsive"
/>
) : (
<img width="300" height="300" src="/my-img.jpg" alt="a cool image" />
)}
</div>
)
}
export default About
上記のページは、ハイブリッド AMP ページで、それは次の意味です:
- 該当のページは、伝統的な HTML(default)と AMP HTML(
?amp=1
を URL に追加することで)でレンダリングされます。 - そのページの AMP version は、AMP Optimizer を使用して有効な最適化のみが適用され、検索エンジンで索引付けできるようになっています
このページはuseAmp
を使ってモードを区別し、それはReact Hook という、ページが AMP を使っている場合はtrue
を、それ以外の場合はfalse
を返すものです。