メタタグ

Nuxt 2 から Nuxt 3 まで、メタタグを管理します。

Nuxt 3 は、メタタグを管理するためのいくつかの異なる方法を提供します

  1. nuxt.config を通じて。
  2. useHead コンポーザブルを通じて
  3. グローバルメタコンポーネントを通じて

titletitleTemplatebasescriptnoscriptstylemetalinkhtmlAttrsbodyAttrs をカスタマイズできます。

現在 Nuxt はUnheadを使用してメタタグを管理していますが、実装の詳細は変更される可能性があります。
Docs > 4 X > Getting Started > Seo Meta で詳細をお読みください。

移行

  1. nuxt.config で、headmeta に変更します。この共有メタ設定を app.vue に移動することを検討してください。(オブジェクトには重複排除のための hid キーがなくなったことに注意してください)
  2. head でコンポーネントの状態にアクセスする必要がある場合は、useHead を使用するように移行する必要があります。組み込みのメタコンポーネントを使用することも検討できます。
  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>

メタコンポーネント

Nuxt 3 は、同じタスクを達成するために使用できるメタコンポーネントも提供します。これらのコンポーネントは 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>