跳到主要內容

useAmp

範例

AMP 支援是我們的高階功能之一,您可以在這裡閱讀更多關於 AMP 的資訊

若要啟用 AMP,請將以下設定新增至您的頁面

pages/index.js
export const config = { amp: true }

amp 設定接受以下值

  • true - 頁面將僅限 AMP
  • 'hybrid' - 頁面將有兩個版本,一個是 AMP,另一個是 HTML

若要深入了解 amp 設定,請閱讀以下章節。

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 的頁面,這表示

  • 頁面沒有 Next.js 或 React 客戶端執行階段
  • 頁面已透過 AMP Optimizer 自動最佳化,這是一個套用與 AMP 快取相同轉換的最佳化工具(效能提升高達 42%)
  • 頁面具有使用者可存取的(最佳化)版本,以及可供搜尋引擎索引的(未最佳化)版本

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 (預設) 和 AMP HTML 呈現 (透過在 URL 中新增 ?amp=1)
  • 頁面的 AMP 版本僅具有透過 AMP Optimizer 套用的有效最佳化,以便可供搜尋引擎索引

頁面使用 useAmp 來區分模式,它是一個 React Hook,如果頁面使用 AMP,則傳回 true,否則傳回 false