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 相关文章推荐
JavaScript 学习笔记(六)
Dec 31 Javascript
不要在cookie中使用特殊字符的原因分析
Jul 13 Javascript
用Javascript实现Sleep暂停功能代码
Sep 03 Javascript
js函数的延迟加载实现代码
Oct 11 Javascript
angularJS提交表单(form)
Feb 09 Javascript
Bootstrap精简教程
Nov 27 Javascript
加快Vue项目的开发速度的方法
Dec 12 Javascript
jQuery each和js forEach用法比较
Feb 27 jQuery
通过vue手动封装on、emit、off的代码详解
May 29 Javascript
vue实现公共方法抽离
Jul 31 Javascript
vue或react项目生产环境去掉console.log的操作
Sep 02 Javascript
解决vue项目运行提示Warnings while compiling.警告的问题
Sep 18 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 miniBB中文乱码问题解决方法
2008/11/25 PHP
Linux下CoreSeek及PHP扩展模块的安装
2012/09/23 PHP
smarty 缓存控制前的页面静态化原理
2013/03/15 PHP
解析thinkphp中的M()与D()方法的区别
2013/06/22 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
2014/05/08 PHP
JavaScript 动态将数字金额转化为中文大写金额
2009/05/14 Javascript
[JSF]使用DataModel处理表行事件的实例代码
2013/08/05 Javascript
javascript屏蔽右键代码
2014/05/15 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
2015/09/06 Javascript
AngularJS基础教程之简单介绍
2015/09/27 Javascript
JS实现带鼠标效果的头像及文章列表代码
2015/09/27 Javascript
jQuery添加和删除指定标签的方法
2015/12/16 Javascript
js生成随机数(指定范围)的实例代码
2016/07/10 Javascript
Vue.js每天必学之表单控件绑定
2016/09/05 Javascript
js判断iframe中元素是否存在的实现代码
2016/12/24 Javascript
angularjs中ng-attr的用法详解
2016/12/31 Javascript
node.js express中app.param的用法详解
2017/07/16 Javascript
Node.JS循环删除非空文件夹及子目录下的所有文件
2018/03/12 Javascript
JavaScript实现的前端AES加密解密功能【基于CryptoJS】
2018/08/28 Javascript
微信小程序实现多个按钮的颜色状态转换
2019/02/15 Javascript
简述vue-cli中chainWebpack的使用方法
2019/07/30 Javascript
[02:38]DOTA2亚洲邀请赛 IG战队巡礼
2015/02/03 DOTA
Sanic框架Cookies操作示例
2018/07/17 Python
Django的性能优化实现解析
2019/07/30 Python
Django基于客户端下载文件实现方法
2020/04/21 Python
Django正则URL匹配实现流程解析
2020/11/13 Python
澳大利亚男士西服品牌:M.J.Bale
2018/02/06 全球购物
Nike瑞士官网:Nike CH
2021/01/18 全球购物
开发中都用到了那些设计模式?用在什么场合?
2014/08/21 面试题
请解释一下webService? 如何用.net实现webService
2014/06/09 面试题
中学生演讲稿
2014/04/26 职场文书
运动会加油口号
2014/06/07 职场文书
企业口号大全
2014/06/12 职场文书
国贸专业求职信
2014/06/28 职场文书
预备党员2014年第四季度思想汇报范文
2014/10/25 职场文书
2015年小学教导处工作总结
2015/05/26 职场文书