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 相关文章推荐
用javascript实现改变TEXTAREA滚动条和按钮的颜色,以及怎样让滚动条变得扁平
Apr 20 Javascript
JQuery 将元素显示在屏幕的中央的代码
Feb 27 Javascript
利用jQuery接受和处理xml数据的代码(.net)
Mar 28 Javascript
jQuery数组处理方法汇总
Jun 20 Javascript
javascript中的缓动效果实现程序
Dec 29 Javascript
jquery查找tr td 示例模拟
May 08 Javascript
js使用正则实现ReplaceAll全部替换的方法
Jul 18 Javascript
使用DeviceOne实现微信小程序功能
Dec 29 Javascript
bootstrap vue.js实现tab效果
Feb 07 Javascript
为输入框加入数字js校验代码分享
Nov 02 Javascript
vue项目中监听手机物理返回键的实现
Jan 18 Javascript
javascript实现倒计时提示框
Mar 02 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
用函数读出数据表内容放入二维数组
2006/10/09 PHP
php单例模式实现方法分析
2015/03/14 PHP
ucenter中词语过滤原理分析
2016/07/13 PHP
PHP针对中英文混合字符串长度判断及截取方法示例
2017/03/31 PHP
php+javascript实现的动态显示服务器运行程序进度条功能示例
2017/08/07 PHP
PHP网站常见安全漏洞,及相应防范措施总结
2021/03/01 PHP
js获取单选按钮的数据
2006/11/27 Javascript
Js callBack 返回前一页的js方法
2008/11/30 Javascript
EasySlider 基于jQuery功能强大简单易用的滑动门插件
2010/06/11 Javascript
解决Extjs上传图片无法预览的解决方法
2012/03/22 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
AngularJs自定义服务之实现签名和加密
2016/08/02 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
2016/11/25 Javascript
使用 Vue.js 仿百度搜索框的实例代码
2017/05/09 Javascript
响应式框架Bootstrap栅格系统的实例
2017/12/19 Javascript
bootstrap中selectpicker下拉框使用方法实例
2018/03/22 Javascript
小程序云开发实现数据库异步操作同步化
2019/05/18 Javascript
VuePress 中如何增加用户登录功能
2019/11/29 Javascript
[00:09]DOTA2全国高校联赛 精彩活动引爆全场
2018/05/30 DOTA
TensorFlow如何实现反向传播
2018/02/06 Python
python 对key为时间的dict排序方法
2018/10/17 Python
Python清空文件并替换内容的实例
2018/10/22 Python
详解python中递归函数
2019/04/16 Python
基于python实现雪花算法过程详解
2019/11/16 Python
Pytest参数化parametrize使用代码实例
2020/02/22 Python
python字符串判断密码强弱
2020/03/18 Python
如何学习Python time模块
2020/06/03 Python
大学生毕业求职简历的自我评价
2013/10/24 职场文书
小学安全教育材料
2014/02/17 职场文书
《威尼斯的小艇》教学反思
2014/02/17 职场文书
幼儿园小班见习报告
2014/10/31 职场文书
担保公司2015年终工作总结
2015/10/14 职场文书
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
2021/03/31 jQuery
Python中相见恨晚的技巧
2021/04/13 Python
python process模块的使用简介
2021/05/14 Python
深入理解MySQL中MVCC与BufferPool缓存机制
2022/05/25 MySQL