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 相关文章推荐
jquery提示 "object expected"的解决方法
Dec 13 Javascript
js getElementsByTagName的简写方式
Jun 27 Javascript
jQuery 隐藏和显示 input 默认值示例
Jun 03 Javascript
JavaScript实现网页对象拖放功能的方法
Apr 15 Javascript
JS根据生日算年龄的方法
May 05 Javascript
jQuery easyui刷新当前tabs的方法
Sep 23 Javascript
JavaScript简单拖拽效果(1)
May 17 Javascript
JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】
Sep 28 Javascript
JavaScript实现AOP详解(面向切面编程,装饰者模式)
Dec 19 Javascript
vue-router相关基础知识及工作原理
Mar 16 Javascript
浅谈Vue数据响应
Nov 05 Javascript
简单了解前端渐进式框架VUE
Jul 20 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
回帖脱衣服的图片实现代码
2014/02/15 PHP
PHP中COOKIES使用示例
2015/07/26 PHP
Yii开启片段缓存的方法
2016/03/28 PHP
基于CI框架的微信网页授权库示例
2016/11/25 PHP
Laravel框架源码解析之入口文件原理分析
2020/05/14 PHP
asp javascript 实现关闭窗口时保存数据的办法
2007/11/24 Javascript
各浏览器中querySelector和querySelectorAll的实现差异分析
2012/05/23 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
2013/11/30 Javascript
Jquery EasyUI中弹出确认对话框以及加载效果示例代码
2014/02/13 Javascript
iframe子页面与父页面在同域或不同域下的js通信
2014/05/07 Javascript
js实现时间显示几天前、几小时前或者几分钟前的方法集锦
2015/05/29 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
2016/06/21 Javascript
浅谈jquery之on()绑定事件和off()解除绑定事件
2016/10/26 Javascript
bootstrap配合Masonry插件实现瀑布式布局
2017/01/18 Javascript
超全面的javascript中变量命名规则
2017/02/09 Javascript
Vue使用zTree插件封装树组件操作示例
2019/04/25 Javascript
微信小程序如何再次获取用户授权的方法
2019/05/10 Javascript
解决vue组件props传值对象获取不到的问题
2019/06/06 Javascript
python实现ip查询示例
2014/03/26 Python
使用Python的Scrapy框架编写web爬虫的简单示例
2015/04/17 Python
举例区分Python中的浅复制与深复制
2015/07/02 Python
Python基于list的append和pop方法实现堆栈与队列功能示例
2017/07/24 Python
美国校园市场:OCM
2017/06/08 全球购物
工商管理实习自我鉴定
2013/09/28 职场文书
金融专业应届生求职信
2013/11/02 职场文书
竞争上岗演讲稿
2014/01/05 职场文书
创新比赛获奖感言
2014/02/13 职场文书
2014年三万活动总结
2014/04/26 职场文书
党员对照检查材料思想汇报
2014/09/16 职场文书
医院党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
远程教育学习心得体会
2016/01/23 职场文书
Vue项目中如何封装axios(统一管理http请求)
2021/05/02 Vue.js
pytorch 6 batch_train 批训练操作
2021/05/28 Python
pandas中对文本类型数据的处理小结
2021/11/01 Python
JavaScript严格模式不支持八进制的问题讲解
2021/11/07 Javascript
Win11怎么修改电源模式?Win11修改电源模式的方法
2022/04/05 数码科技