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

如何在Vue模板中直接访问URL中的查询参数

Vue模板直接访问URL参数的实现方案

首先明确结论:Vue默认没有提供全局可直接在模板调用的url相关内置对象,你示例的<span>{{ url.id }}</span>写法无法直接生效,你可以根据你的项目场景选择以下实现方式:


场景1:项目已接入Vue Router

这是最简便的场景,Vue Router会自动把URL参数挂载到全局的$route响应式对象上,模板可以直接访问$route.query取查询参数,直接写下面的代码即可:

<span>{{ $route.query.id }}</span>

不需要额外编写任何JS逻辑,参数更新时视图也会自动同步更新。


场景2:项目未接入Vue Router

你需要先手动解析浏览器URL参数,挂载到组件的响应式数据上,才可以在模板中调用:

  1. 首先在组件JS逻辑中解析并存储参数:
export default {
  data() {
    return {
      // 存储所有查询参数的响应式对象
      query: {}
    }
  },
  created() {
    // 用浏览器原生API解析查询参数
    const searchParams = new URLSearchParams(window.location.search)
    this.query.id = searchParams.get('id')
    // 也可以遍历把所有参数都存到query里,方便取其他参数
    // for (const [key, value] of searchParams.entries()) {
    //   this.query[key] = value
    // }
  }
}
  1. 模板中直接调用响应式数据即可:
<span>{{ query.id }}</span>

注意事项

如果你的项目用了服务端渲染(SSR,比如Nuxt.js),不要直接在组件生命周期里调用window.location,会因为服务端没有window对象报错,需要从服务端传递的请求上下文里获取URL再做解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 23:51:01