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使用路由信息
相关推荐
二哈喇子!8 分钟前
Vue 组件化开发
前端·javascript·vue.js
chxii31 分钟前
2.9 插槽
前端·javascript·vue.js
接着奏乐接着舞。2 小时前
如何在Vue中使用拓扑图功能
前端·javascript·vue.js
老华带你飞2 小时前
生产管理ERP系统|物联及生产管理ERP系统|基于SprinBoot+vue的制造装备物联及生产管理ERP系统设计与实现(源码+数据库+文档)
java·数据库·vue.js·论文·制造·毕设·生产管理erp系统
阳先森2 小时前
Vue3 Proxy 为何不直接返回target[key],选用Reflect
前端·vue.js
嫩萝卜头儿4 小时前
深入理解 Java AWT Container:原理、实战与性能优化
java·python·性能优化
水冗水孚4 小时前
使用useSearchParams或router.replace拼接地址栏——解决tab标签页刷新状态丢失问题
vue.js·react.js
阳先森4 小时前
vue 数据更新到视图变化全过程
前端·vue.js
Sobeit4 小时前
Vue 3.5 响应式设计与实现流程全解析
前端·vue.js