Nuxt.js头部魔法:轻松自定义页面元信息,提升用户体验


扫描二维码关注或者微信搜一搜:编程智域 前端至全栈交流与成长

useHead 函数概述

useHead是一个用于在 Nuxt 应用中自定义页面头部属性的函数。它由Unhead库提供支持,允许开发者以编程和响应式的方式设置每个页面的头部信息。

useHead 函数类型

useHead(meta: MaybeComputedRef<MetaObject>): void

MetaObject 接口

MetaObject接口定义了可以传递给useHead的属性类型,如下所示:

interface MetaObject {
  title?: string;
  titleTemplate?: string | ((title?: string) => string);
  base?: Base;
  link?: Link[];
  meta?: Meta[];
  style?: Style[];
  script?: Script[];
  noscript?: Noscript[];
  htmlAttrs?: HtmlAttributes;
  bodyAttrs?: BodyAttributes;
}

参数

meta

类型MetaObject

MetaObjectUnhead库中的一个对象类型,用于封装和管理页面头部的元数据。Unhead是一个用于构建动态、可配置的 HTML

头部的库,它允许开发者在 Nuxt.js 应用中灵活地控制页面的元信息。

接受以下头部元数据的对象:

title

title属性用于设置页面的静态标题。当用户在浏览器中打开页面时,显示在浏览器标签或书签中的标题就是由这个属性决定的。例如,如果你想为你的页面设置标题为"我的页面",可以这样设置:

useHead({
  title: '我的页面'
});

titleTemplate

titleTemplate属性允许你使用动态模板来生成标题。这可以是一个字符串模板或者一个函数,该函数接收一个参数(通常是当前的标题)并返回一个新的标题字符串。

字符串模板

useHead({
  titleTemplate: '这是我的页面 - {{title}}'
});

函数模板

const getTitle = (title) => `这是我的页面 - ${title}`;
useHead({
  titleTemplate: getTitle
});

base

base属性用于设置<base>标签的属性,通常用于指定页面中相对链接的基础 URL。例如,如果你的页面是https://example.com

,并且你有一个链接指向/blog,那么使用<base href="/blog">可以确保所有相对链接都从/blog开始。

useHead({
  base: { href: '/blog' }
});

link属性是一个数组,每个元素都是一个<link>标签的配置对象。这些对象通常包含relhreftype

等属性,用于定义外部样式表、脚本文件或其他资源的链接。

useHead({
  link: [
    { rel: 'stylesheet', href: '/styles.css' },
    { rel: 'preload', href: '/fonts/roboto.woff2', as: 'font' }
  ]
});

meta

meta属性也是一个数组,每个元素都是一个<meta>标签的配置对象。这些对象通常包含namecontenthttp-equiv

等属性,用于定义元信息,如描述、关键词、字符集等。

style

script

noscript

htmlAttrsbodyAttrs

示例:

余下文章内容请点击跳转至 个人博客页面 或者 扫码关注或者微信搜一搜:编程智域 前端至全栈交流与成长,阅读完整的文章:Nuxt.js头部魔法:轻松自定义页面元信息,提升用户体验 | cmdragon's Blog

往期文章归档:

相关推荐
aiguangyuan12 天前
后台管理系统引导功能的实现
前端开发·vue 3.0
SEO_juper14 天前
语义SEO全解析:如何在搜索引擎中脱颖而出?
人工智能·谷歌·seo·数字营销·seo优化·谷歌seo·语义seo
aiguangyuan15 天前
后台管理系统用户退出登录方案实现
前端开发·vue 3.0
vortesnail16 天前
Nuxt3 切换主题色且不闪屏该怎么做?
前端·vue.js·nuxt.js
aiguangyuan17 天前
后台管理系统动态面包屑Breadcrumb组件的实现
前端开发·vue 3.0
aiguangyuan20 天前
Vue 3.0 中封装icon组件使用外部SVG图标
svg·前端开发·icon·vue 3.0
陶然同学24 天前
【学生管理系统】权限管理之角色管理
java·elementui·nuxt.js·学生管理系统
陶然同学24 天前
【学生管理系统】权限管理之用户管理
java·nuxt.js·学生管理系统
陶然同学24 天前
【学生管理系统】权限管理
java·nuxt.js·项目·学生管理系统
黑羽同学25 天前
理解Nuxt——基于Nuxt SSG纯前端实现游戏官网(SEO)
vue.js·全栈·nuxt.js