透過 100 多個技巧的集合來學習 Nuxt!

Meta 標籤

管理您的 meta 標籤,從 Nuxt 2 到 Nuxt 3。

Nuxt 3 提供了幾種不同的方式來管理您的 meta 標籤

  1. 透過您的 nuxt.config
  2. 透過 useHead composable
  3. 透過全域 meta 元件

您可以自訂 titletitleTemplatebasescriptnoscriptstylemetalinkhtmlAttrsbodyAttrs

Nuxt 目前使用 Unhead 來管理您的 meta 標籤,但實作細節可能會變更。
文件 > 開始使用 > SEO Meta 中閱讀更多。

遷移

  1. 在您的 nuxt.config 中,將 head 重新命名為 meta。考慮將此共用 meta 設定移至您的 app.vue 中。(請注意,物件不再具有用於重複資料刪除的 hid 鍵。)
  2. 如果您需要使用 head 存取元件狀態,您應該遷移到使用 useHead。您也可以考慮使用內建的 meta 元件。
  3. 如果您需要使用 Options API,當您使用 defineNuxtComponent 時,可以使用 head() 方法。

useHead

<script>
export default {
  data: () => ({
    title: 'My App',
    description: 'My App Description'
  })
  head () {
    return {
      title: this.title,
      meta: [{
        hid: 'description',
        name: 'description',
        content: this.description
      }]
    }
  }
}
</script>

Meta 元件

Nuxt 3 也提供了 meta 元件,您可以使用它們來完成相同的任務。雖然這些元件看起來與 HTML 標籤相似,但它們是由 Nuxt 提供,並具有類似的功能。

<script>
export default {
  head () {
    return {
      title: 'My App',
      meta: [{
        hid: 'description',
        name: 'description',
        content: 'My App Description'
      }]
    }
  }
}
</script>
  1. 請確保您對這些元件名稱使用大寫字母,以將它們與原生 HTML 元素區分開來(<Title> 而不是 <title>)。
  2. 您可以將這些元件放置在頁面範本中的任何位置。

Options API

Nuxt 3 (Options API)
<script>
// if using options API `head` method you must use `defineNuxtComponent`
export default defineNuxtComponent({
  head (nuxtApp) {
    // `head` receives the nuxt app but cannot access the component instance
    return {
      meta: [{
        name: 'description',
        content: 'This is my page description.'
      }]
    }
  }
})
</script>