美文网首页
vue使用动态路由,导致外链进来地址栏上带的参数获取不到问题

vue使用动态路由,导致外链进来地址栏上带的参数获取不到问题

作者: IssunRadiance | 来源:发表于2024-03-24 10:42 被阅读0次

比如有一个外链链接打开我们的项目,链接上带有参数,如:

http://localhost:81/#/order_management/main_order?code=012403191915353432

而因为我们项目中用的时候动态路由,所有的路由都是从后台接口获取的

if(store.getters.permission_routes.length === 0){
  const accessRoutes = await store.dispatch('permission/generateRoutes')
  router.addRoutes(accessRoutes)
  next({ path: to.path})
}else{
  next()
}

这个时候外链链接打开项目时是有参数的,但是因为渲染的动态路由,这里渲染完之后,就成了进的路由,参数呗自动替换掉了

所以我们可以用笨方法在这里先获取一下地址栏上的参数

const url = window.location.href
const can = url.split('?')[1]
var obj = {}
if (can) {
  const params = can.split('&')
  params.forEach(n => {
    if (n) {
      obj[n.split('=')[0]] = n.split('=')[1]
    }
  })
}
console.log(obj) // {code: 012403191915353432}

获取到参数了之后, 在添加完动态路由后,再把参数自动加就就可以了

next({
  path: to.path,
  query: obj,
})

完整的代码

const url = window.location.href
const can = url.split('?')[1]
var obj = {}
if (can) {
  const params = can.split('&')
  params.forEach(n => {
    if (n) {
      obj[n.split('=')[0]] = n.split('=')[1]
    }
  })
}
if(store.getters.permission_routes.length === 0) {
  const accessRoutes = await store.dispatch('permission/generateRoutes')
  router.addRoutes(accessRoutes)
  next({
    path: to.path,
    query: obj,
  })
}else{
  next()
}

相关文章

  • Vue常见面试题

    1.怎么定义vue-router的动态路由?怎么获取传递过来的动态参数? 何为动态路由?能够提供参数的路由即为动态...

  • vue 动态路由

    什么是动态路由?带参数的路由就是动态路由 实际使用 路由中使用多段路径作为参数 !!! 路由组件复用 提醒一下,当...

  • Vue知识点

    vue-router 在mounted函数中获取从路由地址带过来的参数: 定义动态路由: { path: 'new...

  • 关于vue路由传值,组件传值问题

    1,路由传值 方式一:使用函数方式,通过路由的路径带参数,同时配置路由的时候也要带上参数,获取参数使用this.$...

  • 路由

    怎么定义vue-router的动态路由?怎么获取传过来的值? 动态路由的创建,主要是使用path属性过程中,使用动...

  • Vue路由跳转后this.$bus.$on多次触发的问题

    路由跳转 地址栏显示参数,且页面刷新后参数不会消失.跳转: 获取参数 需要注意的是,路由跳转用 $router,获...

  • Vue.js面试总结

    1、怎么定义vue-router的动态路由?怎么获取传过来的动态参数? 在router目录下的index.js文件...

  • 18、 vue-router导航解析及钩子函数

    1、vue-router如何响应 路由参数 的变化? 问题:当使用路由参数时,例如从 /content?id=1 ...

  • vue2 — 根据需要做点改动

    webpack配置 config src 去掉地址栏中的# 测试路由 效果: 上一篇: vue2 — 使用vue-...

  • react-router:传参方式

    一、params传参(动态路由) 特点:刷新页面参数不消失,参数会在地址栏显示 1.路由配置 2.路由跳转 3.获...

网友评论

      本文标题:vue使用动态路由,导致外链进来地址栏上带的参数获取不到问题

      本文链接:https://www.haomeiwen.com/subject/hxrltjtx.html