Vue路由传参页面刷新后参数丢失原因和解决办法

 更新时间:2022年12月13日 11:41:47   作者:lonelysaber  
这几天在开发中遇见的一个关于路由传参后,页面刷新数据丢失的问题,下面这篇文章主要给大家介绍了关于Vue路由传参页面刷新后参数丢失原因和解决办法,需要的朋友可以参考下

vue路由传参方法

在编写vue项目时,时常会使用路由在不同页面中传递参数,常见使用方式如下:

this.$router.push({
  path: "/test",
  query: {
    a: 1,
    b: 2
  }
})

 这样我们就传递了两个参数,在 /test  页面 就可以接收这两个参数

let a = this.$route.query.a;
let b = this.$route.query.b;

可以看到浏览器进行了url参数拼接传参,有点像get请求的意思

如果不想显示参数拼接在url中,可以使用parmars传参,同时path失效,需要用name指定路由,前提vueRouter中有name对应的路由,才能匹配对应的路径

this.$router.push({
   name: "test",
   params: {
      a: 1,
      b: 2
   }
})

接收参数方式 与query方式类似

let a = this.$route.parmars.a;
let b = this.$route.parmars.b;

看起来有点像post请求

 以上看起来一切正常,但是一旦传递的参数中包含对象之后,问题就出现了

原因分析:

参数传递变为了[object object] ,这个我们非常熟悉,是对象被强制转化为字符串的结果

恍然大悟!原来vue路由传值会把参数都转换为字符串进行拼接,相当于String(参数)

解决方案:

解决方案很简单,就是使用JSON

传递参数时将参数转化为JSON字符串

this.$router.push({
  path: "/test",
  query: {
    a: JSON.stringify({test : 'test}),
    b: 2
  }
})

接收时再转化为对象

let a = JSON.parse(this.$route.query.a);
let b = this.$routr.query.b;

完美解决

总结

到此这篇关于Vue路由传参页面刷新后参数丢失原因和解决办法的文章就介绍到这了,更多相关Vue路由传参页面刷新参数丢失内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue实现滚动加载的表格

    vue实现滚动加载的表格

    在系统开发中遇到了这么一个问题:后端一次性返回上百条的数据,我需要把返回的数据全部显示在表格里,而且甲方爸爸明确指定了表格是不允许使用分页的。可是当使用a-table装载上百条数据时,页面出现了明显的卡顿现象。只能使用滚动加载的方案来代替了。
    2021-06-06
  • elementUI select组件默认选中效果实现的方法

    elementUI select组件默认选中效果实现的方法

    这篇文章主要介绍了elementUI select组件默认选中效果实现的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • vue中倒计时组件的实例代码

    vue中倒计时组件的实例代码

    这篇文章主要介绍了vue中倒计时组件的实例代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-07-07
  • Vue.js中数组变动的检测详解

    Vue.js中数组变动的检测详解

    这篇文章给大家主要介绍了Vue.js中数组变动的检测,文中给出了详细的示例代码和过程介绍,相信会对大家的理解和学习很有帮助,有需要的朋友们下面来一起看看吧。
    2016-10-10
  • Vue声明式导航与编程式导航及导航守卫和axios拦截器全面详细讲解

    Vue声明式导航与编程式导航及导航守卫和axios拦截器全面详细讲解

    这篇文章主要介绍了Vue声明式导航与编程式导航及导航守卫和axios拦截器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-01-01
  • 在vant中如何使用dialog弹窗

    在vant中如何使用dialog弹窗

    这篇文章主要介绍了在vant中如何使用dialog弹窗,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • element-ui tree 异步树实现勾选自动展开、指定展开、指定勾选功能

    element-ui tree 异步树实现勾选自动展开、指定展开、指定勾选功能

    这篇文章主要介绍了element-ui tree 异步树实现勾选自动展开、指定展开、指定勾选,项目中用到了vue的element-ui框架,用到了el-tree组件,由于数据量很大,使用了数据懒加载模式,即异步树,需要的朋友可以参考下
    2022-08-08
  • Vue动态设置el-table操作列的宽度自适应

    Vue动态设置el-table操作列的宽度自适应

    这篇文章主要给大家介绍了关于Vue如何动态设置el-table操作列的宽度自适应,很多页面都需要用到表格组件el-table,如果没有给el-table-column指定宽度,默认情况下会平均分配给剩余的列,需要的朋友可以参考下
    2023-07-07
  • Vue3中provide和inject作用和场景

    Vue3中provide和inject作用和场景

    Vue3中provide和inject作用和场景是顶层组件向任意的底层组件传递数据和方法,实现跨层组件通信,本文通过实例介绍Vue3 provide和inject的相关知识,感兴趣的朋友一起看看吧
    2023-11-11
  • Vue实现全局异常处理的几种方案

    Vue实现全局异常处理的几种方案

    本文主要介绍了使用pyscript在网页中撰写Python程式的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05

最新评论