useAmp
例
AMPサポートは弊社の高度な機能の1つです。AMPの詳細についてはこちらをご覧ください。
AMPを有効にするには、ページに以下の設定を追加してください
pages/index.js
export const config = { amp: true }
amp
設定は以下の値を受け入れます
true
- ページはAMPのみになります'hybrid'
- ページには2つのバージョンがあります。1つはAMP、もう1つはHTMLです
amp
設定の詳細については、以下のセクションをご覧ください。
AMP First ページ
以下の例をご覧ください
pages/about.js
export const config = { amp: true }
function About(props) {
return <h3>My AMP About Page!</h3>
}
export default About
上記のページはAMP専用ページであり、次のことを意味します
- このページにはNext.jsまたはReactのクライアントサイドランタイムがありません
- このページは、AMPキャッシュと同じ変換を適用する最適化ツールであるAMP Optimizerによって自動的に最適化されます(パフォーマンスが最大42%向上します)
- このページには、ユーザーがアクセスできる(最適化された)バージョンと、検索エンジンがインデックス可能な(最適化されていない)バージョンがあります
ハイブリッドAMPページ
以下の例をご覧ください
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(デフォルト)とAMP HTML(URLに
?amp=1
を追加)としてレンダリングされます - ページのAMPバージョンには、検索エンジンでインデックス可能になるように、AMP Optimizerによって有効な最適化のみが適用されます
このページでは、モードを区別するためにuseAmp
を使用しています。これは、ページがAMPを使用している場合はtrue
を返し、そうでない場合はfalse
を返すReact Hookです。
参考になりましたか?