跳到主要内容

Head

Nuxt Kit 提供了一系列工具,帮助你在模块中管理 head 配置。

setGlobalHead

为你的 Nuxt 应用设置全局 head 配置。该工具允许模块以编程方式配置 meta 标签、link、script 以及将应用到所有页面的其他 head 元素。

所提供的 head 配置会使用深合并与任何已有的 head 配置合并,你所提供的值具有更高优先级。

这对于需要向应用 head 中注入全局 meta 标签、样式表或脚本的模块尤其有用。 :

类型

// @errors: 2391
// ---cut---
import type { SerializableHead } from '@unhead/vue/types'

interface AppHeadMetaObject extends SerializableHead {
  charset?: string
  viewport?: string
}

function setGlobalHead (head: AppHeadMetaObject): void

参数

类型AppHeadMetaObject

一个包含 head 配置的对象。所有属性都是可选的,会与已有配置合并:

  • charset:文档的字符编码
  • viewport:viewport meta 标签配置
  • meta:meta 标签对象数组
  • link:link 标签对象数组(样式表、图标等)
  • style:内联 style 标签对象数组
  • script:script 标签对象数组
  • noscript:noscript 标签对象数组
  • title:默认页面标题
  • titleTemplate:用于格式化页面标题的模板
  • bodyAttrs:添加到 <body> 标签的属性
  • htmlAttrs:添加到 <html> 标签的属性

示例

添加全局 Meta 标签

import { defineNuxtModule, setGlobalHead } from '@nuxt/kit'

export default defineNuxtModule({
  setup () {
    setGlobalHead({
      meta: [
        { name: 'theme-color', content: '#ffffff' },
        { name: 'author', content: 'Your Name' },
      ],
    })
  },
})

注入全局样式表

import { defineNuxtModule, setGlobalHead } from '@nuxt/kit'

export default defineNuxtModule({
  setup () {
    setGlobalHead({
      link: [
        {
          rel: 'stylesheet',
          href: 'https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap',
        },
      ],
    })
  },
})

添加全局脚本

import { defineNuxtModule, setGlobalHead } from '@nuxt/kit'

export default defineNuxtModule({
  setup () {
    setGlobalHead({
      script: [
        {
          src: 'https://cdn.example.com/analytics.js',
          async: true,
          defer: true,
        },
      ],
    })
  },
})

设置 HTML 属性

import { defineNuxtModule, setGlobalHead } from '@nuxt/kit'

export default defineNuxtModule({
  setup () {
    setGlobalHead({
      htmlAttrs: {
        lang: 'en',
        dir: 'ltr',
      },
      bodyAttrs: {
        class: 'custom-body-class',
      },
    })
  },
})