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 相关文章推荐
document.open() 与 document.write()的区别
Aug 13 Javascript
JavaScript 用Node.js写Shell脚本[译]
Sep 20 Javascript
jQuery之选择组件的深入解析
Jun 19 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
Sep 24 Javascript
快速入门Vue
Dec 19 Javascript
AngularJS基于provider实现全局变量的读取和赋值方法
Jun 28 Javascript
详解微信小程序设置底部导航栏目方法
Jun 29 Javascript
小程序scroll-view组件实现滚动的示例代码
Sep 20 Javascript
Vue组件系列开发之模态框
Apr 18 Javascript
微信小程序缓存过期时间的使用详情
May 12 Javascript
JavaScript 类的封装操作示例详解
May 16 Javascript
基于javascript的无缝滚动动画实现2
Aug 07 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
2019十大人气国漫
2020/03/13 国漫
文件上传的实现
2006/10/09 PHP
收集的PHP中与数组相关的函数
2007/03/22 PHP
JavaScript与HTML结合的基本使用方法整理
2015/10/12 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
Django中的cookie与session操作实例代码
2017/08/17 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
2021/02/26 PHP
第一个JavaScript入门基础 document.write输出
2010/02/22 Javascript
JavaScript中的单引号和双引号报错的解决方法
2014/09/01 Javascript
Javascript常用小技巧汇总
2015/06/24 Javascript
js实现C#的StringBuilder效果完整实例
2015/12/22 Javascript
浅析Node.js:DNS模块的使用
2016/11/23 Javascript
概述如何实现一个简单的浏览器端js模块加载器
2016/12/07 Javascript
Angular将填入表单的数据渲染到表格的方法
2017/09/22 Javascript
jQuery模拟html下拉多选框的原生实现方法示例
2019/05/30 jQuery
Javascript数组方法reduce的妙用之处分享
2019/06/10 Javascript
微信小程序Echarts图表组件使用方法详解
2019/06/25 Javascript
js实现简单的秒表
2020/01/16 Javascript
微信小程序开发打开另一个小程序的实现方法
2020/05/17 Javascript
VUE和Antv G6实现在线拓扑图编辑操作
2020/10/28 Javascript
[53:29]完美世界DOTA2联赛循环赛 DM vs Matador BO2第二场 11.04
2020/11/05 DOTA
[46:47]完美世界DOTA2联赛PWL S2 FTD vs Magma 第二场 11.20
2020/11/23 DOTA
pycharm运行和调试不显示结果的解决方法
2018/11/30 Python
pandas删除指定行详解
2019/04/04 Python
python 画条形图(柱状图)实例
2020/04/24 Python
Python析构函数__del__定义原理解析
2020/11/20 Python
基于python实现监听Rabbitmq系统日志代码示例
2020/11/28 Python
详解px单位html5响应式方案
2018/03/08 HTML / CSS
便携式太阳能系统的创新者:GOAL ZERO
2018/02/04 全球购物
全球才华横溢工匠的家居装饰、珠宝和礼物:NOVICA
2021/01/22 全球购物
普天C++笔试题
2016/03/20 面试题
药品质量检测应届生求职信
2013/11/14 职场文书
关于逃课的检讨书
2014/01/23 职场文书
《小蝌蚪找妈妈》教学反思
2014/02/21 职场文书
周年庆促销方案
2014/03/15 职场文书
Go语言操作数据库及其常规操作的示例代码
2021/04/21 Golang