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 相关文章推荐
jWiard 基于JQuery的强大的向导控件介绍
Oct 28 Javascript
写出高效jquery代码的19条指南
Mar 19 Javascript
基于iframe实现类似于ajax的页面无刷新
May 31 Javascript
js使用DOM设置单选按钮、复选框及下拉菜单的方法
Jan 20 Javascript
JavaScript将当前时间转换成UTC标准时间的方法
Apr 06 Javascript
使用JS在浏览器中判断当前网络连接状态的几种方法
May 05 Javascript
React BootStrap用户体验框架快速上手
Mar 06 Javascript
Vue与Node.js通过socket.io通信的示例代码
Jul 25 Javascript
利用JavaScript的Map提升性能的方法详解
Aug 14 Javascript
基于jquery ajax的多文件上传进度条过程解析
Sep 11 jQuery
JavaScript中window和document用法详解
Jul 28 Javascript
JavaScript中遍历的十种方法总结
Dec 15 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
ip签名探针
2006/10/09 PHP
php语言流程控制中的主动与被动
2012/11/05 PHP
如何使用php判断服务器是否是HTTPS连接
2013/07/05 PHP
php二维数组转成字符串示例
2014/02/17 PHP
PHP常用函数和常见疑难问题解答
2014/03/05 PHP
javascript的onchange事件与jQuery的change()方法比较
2009/09/28 Javascript
jquery last-child 列表最后一项的样式
2010/01/22 Javascript
js里取容器大小、定位、距离等属性搜集整理
2013/08/19 Javascript
JQuery获取样式中的background-color颜色值的问题
2013/08/20 Javascript
jQuery实现图片轮播特效代码分享
2015/09/15 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
2016/01/09 Javascript
简单谈谈Vue 模板各类数据绑定
2016/09/25 Javascript
利用vue写todolist单页应用
2016/12/15 Javascript
bootstrapValidator 重新启用提交按钮的方法
2017/02/20 Javascript
jQuery实现文章图片弹出放大效果
2017/04/06 jQuery
静态页面实现 include 引入公用代码的示例
2017/09/25 Javascript
微信小程序 页面滑动事件的实例详解
2017/10/12 Javascript
微信小程序实现获取自己所处位置的经纬度坐标功能示例
2017/11/30 Javascript
Nodejs中获取当前函数被调用的行数及文件名详解
2018/12/12 NodeJs
详解小程序中h5页面onShow实现及跨页面通信方案
2019/05/30 Javascript
ES6中定义类和对象的方法示例
2019/07/31 Javascript
[07:12]2014DOTA2西雅图国际邀请赛 黑马Liquid专题采访
2014/07/12 DOTA
[02:17]2016国际邀请赛中国区预选赛VG战队领队采访
2016/06/26 DOTA
django上传图片并生成缩略图方法示例
2017/12/11 Python
Python基于高斯消元法计算线性方程组示例
2018/01/17 Python
numpy中以文本的方式存储以及读取数据方法
2018/06/04 Python
Python操作redis实例小结【String、Hash、List、Set等】
2019/05/16 Python
使用TensorFlow对图像进行随机旋转的实现示例
2020/01/20 Python
pytorch实现查看当前学习率
2020/06/24 Python
针对HTML5的Web Worker使用攻略
2015/07/12 HTML / CSS
Chain Reaction Cycles芬兰:世界上最大的在线自行车商店
2017/12/06 全球购物
党校培训自我鉴定范文
2014/04/10 职场文书
本科应届生自荐信
2014/06/29 职场文书
立志成才演讲稿
2014/09/04 职场文书
2015年人事工作总结范文
2015/04/09 职场文书
最美劳动诗,致敬所有的劳动者!
2019/07/12 职场文书