You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue3使用useHead添加动态标题及meta描述时$route未定义如何解决

Vue3使用useHead时$route未定义的解决方法

错误原因

Vue3的组合式API setup() 执行阶段组件实例尚未初始化,不存在this指向,因此无法通过this.$route的方式读取路由参数。

解决步骤

  • 从vue-router中导入useRoute钩子,调用后获取当前路由实例
  • 如果路由参数存在动态更新的可能,建议用计算属性包裹useHead的配置,保证页面head数据同步更新

正确代码示例

<script setup>
import { useRoute } from 'vue-router'
import { useHead } from '@vueuse/head'
import { computed } from 'vue'

const route = useRoute()

// 路由参数固定不会变化的场景可直接使用
useHead({
  title: route.params.title,
  meta: [
    {
      name: 'description',
      content: route.params.description
    },
  ],
})

// 路由参数可能动态更新的场景,使用计算属性包裹配置
/*
useHead(computed(() => ({
  title: route.params.title,
  meta: [
    {
      name: 'description',
      content: route.params.description
    }
  ]
})))
*/
</script>

内容的提问来源于stack exchange,提问作者Josip Marić

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 19:36:03