seo-使用nuxt定义页面标题和meta等信息

nuxt-seo-定义单页面的标题和meta元信息

1.Nuxt 3+版本

全局配置 :nuxt.config.ts 中配置即可
页面级配置: useHead 组合式 API(推荐)

javascript 复制代码
<script setup>
import { useHead } from '@unhead/vue'
// 静态配置
useHead({
  title: '默认标题',
  meta: [
    { name: 'description', content: '默认描述' }
  ],
  link:[
	{
	  rel: "icon",
      type: "image/png",
      href: "/favicon.png"
    }
  ]
})
// 动态配置(结合 ref),可以从路由信息中获取,也可从从接口获取title内容
const dynamicTitle = ref('初始标题')
useHead({
  title: dynamicTitle.value // 自动响应更新
  // title.useRoute().meta.title //从路由信息中获取
})
// 修改动态标题
setTimeout(() => {
  dynamicTitle.value = '新标题'
}, 3000)
</script>

动态 设置示例(如从 API 获取)

javascript 复制代码
<script setup>
import { useAsyncData } from 'nuxt/app'
const { data: seoData } = await useAsyncData('seo', () => {
  return $fetch('/api/seo-data') // 从 API 获取 SEO 数据
})
useHead({
  title: seoData.value.title,
  meta: [
    { name: 'description', content: seoData.value.description }
  ]
})
</script>

2.区分definePageMeta(定义路由信息)

用途: 配置页面级路由行为和 Nuxt 框架相关设置
作用域: 只能在 pages/ 目录下的组件中使用

javascript 复制代码
//这里的title是路由的标题,不是页面的title
definePageMeta({
  // 路由相关配置
  name: 'custom-route-name',     // 自定义路由名称
  path: '/custom/:id',           // 覆盖文件系统路由
  alias: ['/alt-path'],           // 路由别名
  // 布局控制
  layout: 'admin-layout',         // 指定使用的布局
  // 路由行为
  middleware: ['auth'],           // 应用的中间件
  pageTransition: { name: 'fade' }, // 页面过渡效果
  // 验证路由参数
  validate: (route) => /^\d+$/.test(route.params.id),
  // SEO 相关(需配合 useHead 使用)
  title: '默认标题',              // 不会直接设置 HTML title
});
//下面可以useHead使用路由信息
相关推荐
康小汪7 小时前
AI 写 Vue 总写成同一个味道:给它装 Skills,装的不是知识是边界
前端·vue.js·人工智能·ai编程·最佳实践
蒸鱼Yuzheng9 小时前
移动端 Overdraw 治理:从单帧热图到屏幕空间预算
性能优化·gpu·renderdoc·overdraw·移动端渲染
北冥有鱼11 小时前
发版后动态路由点击报 `Failed to fetch dynamically imported module`」问题上的完整排查与修复过程
前端·vue.js
魏慕安12 小时前
渲染提速 6 倍:搭建引擎的门控优化实录
性能优化
ZhengEnCi13 小时前
vLLM是什么:PagedAttention 让大模型推理快 2-4 倍,还能撑起更长思维链
人工智能·性能优化·llm
Random Glow14 小时前
二级索引与回表:一次回表到底多贵
数据库·mysql·性能优化·innodb·索引
apollo_qwe14 小时前
大模型 API 接通了,AI 聊天页面为什么还是不好用?
前端·vue.js·人工智能
科威网络14 小时前
小程序开发性能优化:分包、预加载与启动时间
性能优化·微信小程序·小程序
贾伟康17 小时前
【共创稿事节】食材百科页的懒加载改造:LazyForEach、IDataSource 与缓存窗口的三次迭代
性能优化·harmonyos·arkts·lazyforeach·列表加载
小郎君65820 小时前
keep-alive 页面怎么“真刷新”?别改外层 key——一个 refreshVersion 的完整实现
vue.js·算法