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 BS,dialog控件自适应大小
Jul 06 Javascript
在jquery中处理带有命名空间的XML数据
Jun 13 Javascript
jQuery代码优化之基本事件
Nov 01 Javascript
javascript检测页面是否缩放的小例子
May 16 Javascript
js 判断图片是否加载完以及实现图片的预下载
Aug 14 Javascript
让JavaScript中setTimeout支持链式操作的方法
Jun 19 Javascript
jquery实现最简单的滑动菜单效果代码
Sep 12 Javascript
Js利用console计算代码运行时间的方法示例
Sep 24 Javascript
关于Vue项目跨平台运行问题的解决方法
Sep 18 Javascript
vue v-for循环重复数据无法添加问题解决方法【加track-by='索引'】
Mar 15 Javascript
Vue element-ui父组件控制子组件的表单校验操作
Jul 17 Javascript
JavaScript 空间坐标的使用
Aug 19 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堆栈与列队的学习
2013/06/21 PHP
php stripslashes和addslashes的区别
2014/02/03 PHP
PHP准确取得服务器IP地址的方法
2015/06/02 PHP
php文件上传及下载附带显示文件及目录功能
2017/04/27 PHP
兼容IE/Firefox/Opera/Safari的检测页面装载完毕的脚本Ext.onReady的实现
2009/07/14 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
基于IE下ul li 互相嵌套时的bug,排查,解决过程以及心得介绍
2013/05/07 Javascript
非常漂亮的JS+CSS图片幻灯切换特效
2013/11/20 Javascript
JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
2016/01/26 Javascript
JS中改变this指向的方法(call和apply、bind)
2016/03/26 Javascript
JS 滚动事件window.onscroll与position:fixed写兼容IE6的回到顶部组件
2016/10/10 Javascript
详解angularjs 关于ui-router分层使用
2017/06/12 Javascript
vue-router路由参数刷新消失的问题解决方法
2017/06/17 Javascript
Bootstrap Table从零开始
2017/06/30 Javascript
vuex 使用文档小结篇
2018/01/11 Javascript
nodejs+express搭建多人聊天室步骤
2018/02/12 NodeJs
python实现在pickling的时候压缩的方法
2014/09/25 Python
python中zip()方法应用实例分析
2016/04/16 Python
Python随机生成手机号、数字的方法详解
2017/07/21 Python
5分钟 Pipenv 上手指南
2018/12/20 Python
在python中将list分段并保存为array类型的方法
2019/07/15 Python
深入学习python多线程与GIL
2019/08/26 Python
python利用opencv实现SIFT特征提取与匹配
2020/03/05 Python
python爬虫开发之PyQuery模块详细使用方法与实例全解
2020/03/09 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
2020/06/29 Python
详解CSS3开启硬件加速的使用和坑
2017/08/21 HTML / CSS
CSS3 对过渡(transition)进行调速以及延时
2020/10/21 HTML / CSS
描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
2015/03/25 面试题
医学护理毕业生自荐信
2013/11/07 职场文书
大学生实习鉴定评语
2014/04/25 职场文书
今冬明春火灾防控工作方案
2014/05/29 职场文书
校园广播稿精选
2014/10/01 职场文书
六查六看六改心得体会
2014/10/14 职场文书
《所见》教学反思
2016/02/23 职场文书
如何有效防止sql注入的方法
2021/05/25 SQL Server
SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法
2021/06/30 SQL Server