透過 100 多個提示學習 Nuxt!

Meta 標籤

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

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

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

您可以自訂 titletitleTemplatebasescriptnoscriptstylemetalinkhtmlAttrsbodyAttrs

Nuxt 目前使用 vueuse/head 來管理您的 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. 您可以將這些元件放置在您頁面的範本中的任何位置。

選項 API

Nuxt 3 (選項 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>