vue路由传参页面刷新参数丢失问题解决方案


Posted in Javascript onOctober 08, 2019

最近项目中涉及到跨页面传参数和后台进行数据交互,看到需求之后第一反应就是用路由传参来解决;Vue中给我们提供了三种路由传参方式,下面我们一个一个的来看一下:

方法一:params传参:

this.$router.push({
    name:"admin",

//这里的params是一个对象,id是属性名,item.id是值(可以从当前组件或者Vue实例上直接取)
    params:{id:item.id}
})    

//这个组件对应的路由配置
{

//组件路径
  path: '/admin',

//组件别名
  name: 'admin',

//组件名
  component: Admin,
}

通过params传递参数,如果我们想获取id的 参数值,我们可以通过this.$route.params.id这种方式来打印出来就可以得到了;(注意:获取参数的时候是$route,跳转和传参的时候是$router)

方法二:路由属性配置传参:

this.$router.push({
    name:"/admin/${item.id}",
})    

//这个组件对应的路由配置
{
//组件路径
  path: '/admin:id',

//组件别名
  name: 'admin',

//组件名
  component: Admin,
}

通过路由属性配置传参我们可以用this.$route.params.id来获取到id的值,注意this.$router.push方法里面路径带的是值,路由配置项那里带的是变量名(属性名)来实现的对应;

以上两种传参方式基本上可以理解为ajax中的post请求方式,参数都是不可见的,但是上面两种方法都有一个弊端,就是当页面刷新了是获取不到参数值的,那么有没有一种方法是页面刷新之后参数依然存在呢?

方法三:query传参

this.$router.push({
    name:"/admin",

 query:{id:item.id}
})    
//这个组件对应的路由配置
{

//组件路径
  path: '/admin',

//组件别名
  name: 'admin',

//组件名
  component: Admin,
}

第三种方式是用query来传参,这种方式是可以解决页面刷新参数消失问题的,这种方式可以理解为是ajax中的get方法,参数是直接在url后面添加的,参数是可见的,所以解决页面刷新参数消失问题建议使用方法三来解决;

其实解决页面刷新参数丢失问题的方案还有很多,比如把参数存在sessionStorange或者localStorange中都是可行的,不过我们既然用vue框架,就要用vue的方式来解决问题。这里只是想告诉大家,问题的解决方案可以多种多样,要学会用多种方式或者说多种方案来解决一个问题,不要有太多的局限性!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Web 前端设计模式--Dom重构 提高显示性能
Oct 22 Javascript
actionscript与javascript的区别
May 25 Javascript
js前台判断开始时间是否小于结束时间
Feb 23 Javascript
PHP守护进程实例
Mar 06 Javascript
跟我学习javascript的执行上下文
Nov 18 Javascript
Javascript实现图片不间断滚动的代码
Jun 22 Javascript
JS异步文件分片断点上传的实现思路
Dec 25 Javascript
详谈js中window.location.search的用法和作用
Feb 13 Javascript
图文介绍Vue父组件向子组件传值
Feb 17 Javascript
vue弹窗消息组件的使用方法
Sep 24 Javascript
浅谈Vue数据响应
Nov 05 Javascript
解决vue单页面应用打包后相对路径、绝对路径相关问题
Aug 14 Javascript
vux-scroller实现移动端上拉加载功能过程解析
Oct 08 #Javascript
深入学习Vue nextTick的用法及原理
Oct 08 #Javascript
jQuery 筛选器简单操作示例
Oct 02 #jQuery
jQuery 查找元素操作实例小结
Oct 02 #jQuery
JavaScript 作用域实例分析
Oct 02 #Javascript
JavaScript Dom 绑定事件操作实例详解
Oct 02 #Javascript
JavaScript 面向对象基础简单示例
Oct 02 #Javascript
You might like
PHP向浏览器输出内容的4个函数总结
2014/11/17 PHP
PHP比较运算符的详细介绍
2015/09/29 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
Javascript 面向对象(二)封装代码
2012/05/23 Javascript
JQuery表格内容过滤的实现方法
2013/07/05 Javascript
javascript中的document.open()方法使用介绍
2013/10/09 Javascript
js 剪切板的用法(clipboardData.setData)与js match函数介绍
2013/11/19 Javascript
javascript模拟实现C# String.format函数功能代码
2013/11/25 Javascript
javascript实现json页面分页实例代码
2014/02/20 Javascript
jQuery判断checkbox(复选框)是否被选中以及全选、反选实现代码
2014/02/21 Javascript
深入解析JavaScript中的数字对象与字符串对象
2015/10/21 Javascript
Javascript中作用域的详细介绍
2016/10/06 Javascript
模板视图和AngularJS之间冲突的解决方法
2016/11/22 Javascript
AngularJS常见过滤器用法实例总结
2017/07/06 Javascript
webpack-url-loader 解决项目中图片打包路径问题
2019/02/15 Javascript
jQuery实现的图片点击放大缩小功能案例
2020/01/02 jQuery
JavaScript常用工具函数大全
2020/05/06 Javascript
jQuery实现鼠标拖动图片功能
2021/03/04 jQuery
[29:59]完美世界DOTA2联赛PWL S3 Forest vs access 第二场 12.11
2020/12/13 DOTA
Python3.2中的字符串函数学习总结
2015/04/23 Python
Python实现程序的单一实例用法分析
2015/06/03 Python
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
2015/10/18 Python
Python中列表元素转为数字的方法分析
2016/06/14 Python
详解python eval函数的妙用
2017/11/16 Python
python中协程实现TCP连接的实例分析
2018/10/14 Python
Python基础教程之异常详解
2019/01/10 Python
python使用matplotlib绘制雷达图
2019/10/18 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
Python常用外部指令执行代码实例
2020/11/05 Python
详解Open Folder as PyCharm Project怎么添加的方法
2020/12/29 Python
Html5 canvas画图白板踩坑
2020/06/01 HTML / CSS
Expedia意大利旅游网站:酒店、机票和租车预订
2017/10/30 全球购物
英国时尚运动品牌的合集:The Sports Edit
2017/12/20 全球购物
学习杨善洲同志先进事迹心得体会
2016/01/23 职场文书
CSS实现五种常用的2D转换
2021/12/06 HTML / CSS
对讲机的最大通讯距离是多少
2022/02/18 无线电