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

Nuxt如何通过NuxtLink传递隐藏ID同时在URL展示title适配SEO

解决方案

你可以通过以下两种方案实现ID隐藏传递,同时保留URL中的title满足SEO要求:

方案1:路由state传递(最推荐,无额外依赖)

vue-router 内置的state参数会存储在浏览器历史记录中,完全不会出现在URL地址栏,符合隐藏ID的要求。
修改NuxtLink代码如下:

<NuxtLink 
  :to="localePath({
    path: `/blog/${post.title}`,
    state: { postId: post.id }
  })"
>
show Post
</NuxtLink>

在目标文章页面读取ID的代码:

<script setup>
const route = useRoute()
// 直接获取隐藏传递的文章ID
const postId = route.state?.postId
</script>

注意:如果用户手动复制URL到新窗口打开,路由state会丢失,建议加兜底逻辑:拿不到ID时用URL中的title向后端查询对应ID即可。


方案2:sessionStorage存储(支持新窗口打开场景)

如果需要支持用户新窗口打开链接仍能拿到ID,可以用sessionStorage做临时映射存储:

<NuxtLink 
  :to="localePath({ path: `/blog/${post.title}` })"
  @click="() => sessionStorage.setItem(`post_${post.title}`, post.id)"
>
show Post
</NuxtLink>

在目标文章页面读取ID的代码:

<script setup>
const route = useRoute()
// 从路由参数中取URL里的title,对应你的路由规则调整参数名
const postTitle = route.params.title
const postId = sessionStorage.getItem(`post_${postTitle}`)
// 兜底逻辑:拿不到ID时用title向后端查询对应ID
</script>

内容的提问来源于stack exchange,提问作者morteza mortezaie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:15:03