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 AJAX实现调用页面后台方法和web服务定义的方法分享
Mar 01 Javascript
javascript实现框架高度随内容改变的方法
Jul 23 Javascript
JS拖拽插件实现步骤
Aug 03 Javascript
Bootstrap每天必学之级联下拉菜单
Mar 27 Javascript
jQuery控制div实现随滚动条滚动效果
Jun 07 Javascript
Bootstrap下拉菜单效果实例代码分享
Jun 30 Javascript
Vue.js -- 过滤器使用总结
Feb 18 Javascript
Express系列之multer上传的使用
Oct 27 Javascript
vue模式history下在iis中配置流程
Apr 17 Javascript
Vue $mount实战之实现消息弹窗组件
Apr 22 Javascript
微信小程序入门之绘制时钟
Oct 22 Javascript
用js实现放大镜效果
Oct 28 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
腾讯微博提示missing parameter errorcode 102 错误的解决方法
2014/12/22 PHP
jquery下利用jsonp跨域访问实现方法
2010/07/29 Javascript
JS验证身份证有效性示例
2013/10/11 Javascript
jQuery圆形统计图开发实例
2015/01/04 Javascript
JQuery实现动态添加删除评论的方法
2015/05/18 Javascript
深入理解JavaScript的React框架的原理
2015/07/02 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
discuz表情的JS提取方法分析
2017/03/22 Javascript
微信小程序使用Socket的实例
2017/09/19 Javascript
JavaScript实现焦点进入文本框内关闭输入法的核心代码
2017/09/20 Javascript
vue双向数据绑定知识点总结
2018/04/18 Javascript
Vue多环境代理配置方法思路详解
2019/06/21 Javascript
js实现表格单列按字母排序
2020/08/12 Javascript
js实现前端界面导航栏下拉列表
2020/08/27 Javascript
在Windows8上的搭建Python和Django环境
2014/07/03 Python
获取Django项目的全部url方法详解
2017/10/26 Python
Windows下Python3.6安装第三方模块的方法
2018/11/22 Python
记一次python 内存泄漏问题及解决过程
2018/11/29 Python
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
2019/04/01 Python
selenium+python自动化测试环境搭建步骤
2019/06/03 Python
linux中如何使用python3获取ip地址
2019/07/15 Python
django foreignkey外键使用的例子 相当于left join
2019/08/06 Python
Django继承自带user表并重写的例子
2019/11/18 Python
详解css3 object-fit属性
2018/07/27 HTML / CSS
法国和欧洲海边和滑雪度假:Pierre & Vacances
2017/01/04 全球购物
台湾最大银发乐活百货:乐龄网
2018/05/21 全球购物
韩国乐天网上商城:Lotte iMall
2021/02/03 全球购物
函授毕业生自我鉴定范文
2014/03/25 职场文书
优秀共产党员先进事迹材料
2014/05/06 职场文书
革命英雄事迹演讲稿
2014/09/13 职场文书
入党政审材料范文
2014/12/24 职场文书
高中地理教学反思
2016/02/19 职场文书
八年级作文之感悟亲情
2019/11/20 职场文书
详解Js模块化的作用原理和方案
2021/04/29 Javascript
Python装饰器的练习题
2021/11/23 Python