Vue3接收静态页面URL中携带的参数

从HTML页面中的a链接里携带的参数要在vue3项目里接收到此参数
目前有两个项目一个静态项目一个vue项目,我需要从静态页面的链接跳转到Vue项目中,并且这两个项目可以通过参数进行关联
这里有两种方案:
一种是将静态页面中的id存在本地,在vue中通过获取本地id传给接口从而渲染页面
影响:可能会出现跨域
第二种通过getUrlKey.js获取URL地址栏中跳转携带的参数
步骤如下:

首先这里需要一个静态页面的url跳转到vue项目中

<a href="http://111.222.333.444:5175/index?id=59">链接</a>

在Vue页面中需要使用到getUrlKey.js

export  function getUrlKey(name){
    return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) || [, ""])[1].replace(/\+/g, '%20')) || null
}

在页面中调用

import {getUrlKey} from '../utils/getUrlKey/getUrlKey';

使用方法:getUrlKey('id')

通过query将此页面传接收过来的参数

onMounted(() => {
  router.push({
    query: {
      id: getUrlKey("id"),
    },
  });
  })

用route接收获取到的id参数

let objs = { id: route.query.id };

发送请求

 getCoordinate(objs).then((res) => {...})

这时从静态页面的路径就会被getUrlKey通过正则的方式接收并解析出来

### Vue3 中路由参数 (params) 出现混乱的解决方案 在 Vue Router 的配置中,无论是采用 Hash 模式还是 History 模式,都可能遇到路由参数传递不一致或丢失的情况。为了确保路由参数能够正确无误地被接收和处理,在设计路由规则时需要注意一些细节。 #### 路由定义中的命名视图与动态路径片段 当定义带有参数的路由时,应该明确指定这些参数作为路径的一部分: ```javascript const routes = [ { name: &#39;user&#39;, path: &#39;/user/:id(\\d+)&#39;, // 使用正则表达式限定 id 只能为数字 component: User, props: true // 将匹配到的 URL 参数自动转换成组件属性传入 } ]; ``` 通过这种方式可以有效防止因路径拼接错误而导致的参数错乱问题[^1]。 #### 动态编程导航时设置完整的相对路径 如果是在代码内部调用 `router.push()` 或者 `<router-link>` 组件来进行跳转操作,则务必提供完整的目标地址字符串形式或者对象形式来描述目标位置及其携带的数据: ```javascript // 推荐做法:使用名称化的路由并附带必要的查询条件 this.$router.push({ name: &#39;user&#39;, params: { id: userId }, }); ``` 这有助于避免由于当前上下文环境不同而引起的意外行为[^2]。 #### 处理嵌套路由下的参数继承机制 对于存在父子关系的多级路由结构来说,默认情况下子路由会继承父级所设定好的静态部分以及可选参数;但如果希望打破这种默认逻辑的话就需要特别指明如何覆盖掉不需要的部分: ```javascript { path: "/parent/:parentId", component: ParentComponent, children:[ { path: "child", // 子路由不再依赖于 :parentId 这样的外部变量 component: ChildComponent } ] } ``` 另外值得注意的是,在某些场景下即使已经按照上述方法进行了调整仍然可能出现异常情况——此时建议开启严格模式(`strict mode`) 来帮助定位具体原因所在[^3]: ```javascript const router = createRouter({ history: createWebHashHistory(), routes, strict: process.env.NODE_ENV !== &#39;production&#39; }) ``` 以上措施结合起来可以帮助开发者更好地管理和维护应用内的各个页面之间的关联性,从而减少甚至杜绝因为路由参数管理不当所带来的困扰。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Southern Wind

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值