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获取复选框被选中值的简单方法
Jul 04 Javascript
jquery Tab效果和动态加载的简单实例
Dec 11 Javascript
JS中window.open全屏命令解析及使用示例
Dec 11 Javascript
基于jquery的文字向上跑动类似跑马灯的效果
Sep 22 Javascript
jQuery实现表格行上移下移和置顶的方法
May 22 Javascript
Angular-Ui-Router+ocLazyLoad动态加载脚本示例
Mar 02 Javascript
JS实现图片预览的两种方式
Jun 27 Javascript
Three.js实现绘制字体模型示例代码
Sep 26 Javascript
Vue登录注册并保持登录状态的方法
Aug 17 Javascript
jquery.param()实现数组或对象的序列化方法
Oct 08 jQuery
小程序显示弹窗时禁止下层的内容滚动实现方法
Mar 20 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
Jan 26 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和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
2011/07/03 PHP
php实现从上传文件创建缩略图的方法
2015/04/02 PHP
PHP+Ajax实现上传文件进度条动态显示进度功能
2018/06/04 PHP
PHP使用函数用法详解
2018/09/30 PHP
javascript prototype,executing,context,closure
2008/12/24 Javascript
javascript 关闭IE6、IE7
2009/06/01 Javascript
默认让页面的第一个控件选中的javascript代码
2009/12/26 Javascript
数组Array进行原型prototype扩展后带来的for in遍历问题
2010/02/07 Javascript
一些相见恨晚的 JavaScript 技巧
2010/04/25 Javascript
jQuery选择头像并实时显示的代码
2010/06/27 Javascript
JavaScript高级程序设计(第3版)学习笔记4 js运算符和操作符
2012/10/11 Javascript
js中apply方法的使用详细解析
2013/11/04 Javascript
JavaScript按位运算符的应用简析
2014/02/04 Javascript
JS中判断null、undefined与NaN的方法
2014/03/24 Javascript
模拟用户点击弹出新页面不会被浏览器拦截
2014/04/08 Javascript
js获取指定时间的前几秒
2017/04/05 Javascript
javascript实现table单元格点击展开隐藏效果(实例代码)
2017/04/10 Javascript
纯js实现隔行变色效果
2017/11/29 Javascript
使用命令行工具npm新创建一个vue项目的方法
2017/12/27 Javascript
详解为Bootstrap Modal添加拖拽的方法
2018/01/05 Javascript
Vue 项目代理设置的优化
2018/04/17 Javascript
基于Angularjs-router动态改变Title值的问题
2018/08/30 Javascript
[11:27]《一刀刀一天》之DOTA全时刻20:TI4总奖金突破920W TS赛事分析
2014/06/18 DOTA
eclipse创建python项目步骤详解
2019/05/10 Python
Django框架模型简单介绍与使用分析
2019/07/18 Python
AmazeUI 图标的示例代码
2020/08/13 HTML / CSS
世界汽车零件:World Car Parts
2019/09/04 全球购物
临床医师专业个人自我评价
2014/01/08 职场文书
党校培训自我鉴定
2014/02/01 职场文书
测试工程师程序员求职信范文
2014/02/20 职场文书
中学生操行评语
2014/04/24 职场文书
社区工作者演讲稿
2014/05/23 职场文书
工厂门卫的岗位职责
2014/07/27 职场文书
2014年林业工作总结
2014/12/05 职场文书
为什么MySQL8新特性会修改自增主键属性
2022/04/18 MySQL
解决vue中provide inject的响应式监听
2022/04/19 Vue.js