vue-router传递参数的几种方式实例详解


Posted in Javascript onNovember 13, 2018

vue-router传递参数分为两大类

  • 编程式的导航 router.push
  • 声明式的导航 <router-link>

编程式的导航 router.push

编程式导航传递参数有两种类型:字符串、对象。

字符串

字符串的方式是直接将路由地址以字符串的方式来跳转,这种方式很简单但是不能传递参数:

this.$router.push("home");

对象

想要传递参数主要就是以对象的方式来写,分为两种方式:命名路由、查询参数,下面分别说明两种方式的用法和注意事项。

命名路由

命名路由的前提就是在注册路由的地方需要给路由命名如:

vue-router传递参数的几种方式实例详解

命名路由传递参数需要使用params来传递,这里一定要注意使用params不是query。

目标页面接收传递参数时使用params

特别注意:命名路由这种方式传递的参数,如果在目标页面刷新是会出错的

使用方法如下:

this.$router.push({ name: 'news', params: { userId: 123 }})

代码如下:

<template>
 <div class="hello">
  <h1>{{ msg }}</h1>
  <button @click="routerTo">click here to news page</button>
 </div>
</template>

<script>
export default {
 name: 'HelloWorld',
 data () {
  return {
   msg: 'Welcome to Your Vue.js App'
  }
 },
 methods:{
  routerTo(){
   this.$router.push({ name: 'news', params: { userId: 123 }});
  }
 }
}
</script>

<style>
</style>接受传递的参数:<template>
 <div>
  this is the news page.the transform param is {{this.$route.params.userId}}
 </div>
</template>
<script>
</script>

运行效果如下:

vue-router传递参数的几种方式实例详解

查询参数

查询参数其实就是在路由地址后面带上参数和传统的url参数一致的,传递参数使用query而且必须配合path来传递参数而不能用name,目标页面接收传递的参数使用query。

注意:和name配对的是params,和path配对的是query

使用方法如下:

this.$router.push({ path: '/news', query: { userId: 123 }});代码如下:<template>
 <div class="hello">
  <h1>{{ msg }}</h1>
  <button @click="routerTo">click here to news page</button>
 </div>
</template>

<script>
export default {
 name: 'HelloWorld',
 data () {
  return {
   msg: 'Welcome to Your Vue.js App'
  }
 },
 methods:{
  routerTo(){
   this.$router.push({ path: '/news', query: { userId: 123 }});
  }
 }
}
</script>

<style>
</style>接收参数如下:<template>
 <div>
  this is the news page.the transform param is {{this.$route.query.userId}}
 </div>
</template>
<script>
</script>

运行效果如下:

vue-router传递参数的几种方式实例详解

声明式的导航

声明式的导航和编程式的一样,这里就不在过多介绍,给几个例子大家对照编程式理解,

例子如下:

字符串

<router-link to="news">click to news page</router-link>

命名路由

<router-link :to="{ name: 'news', params: { userId: 1111}}">click to news page</router-link>

运行效果如下:

vue-router传递参数的几种方式实例详解

查询参数

<router-link :to="{ path: '/news', query: { userId: 1111}}">click to news page</router-link>

运行效果如下:

vue-router传递参数的几种方式实例详解

最后总结:

路由传递参数和传统传递参数是一样的,命名路由类似表单提交而查询就是url传递,在vue项目中基本上掌握了这两种传递参数就能应付大部分应用了,最后总结为以下两点:

1.命名路由搭配params,刷新页面参数会丢失

2.查询参数搭配query,刷新页面数据不会丢失

3.接受参数使用this.$router后面就是搭配路由的名称就能获取到参数的值

总结

以上所述是小编给大家介绍的vue-router传递参数的几种方式实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript Base类 包含基本的方法
Jul 22 Javascript
使用js操作css实现js改变背景图片示例
Mar 10 Javascript
JS上传图片前实现图片预览效果的方法
Mar 02 Javascript
AngularJS在IE8的不支持的解决方法
May 13 Javascript
JS简单测试循环运行时间的方法
Sep 04 Javascript
Javascript6中字符串的四个新用法分享
Sep 11 Javascript
Canvas 制作动态进度加载水球详解及实例代码
Dec 09 Javascript
vue中简单弹框dialog的实现方法
Feb 26 Javascript
vue-cli项目无法用本机IP访问的解决方法
Sep 20 Javascript
angular的输入和输出的使用方法
Sep 22 Javascript
浅谈vuex中store的命名空间
Nov 08 Javascript
基于JavaScript实现轮播图效果
Jan 02 Javascript
vue-router的使用方法及含参数的配置方法
Nov 13 #Javascript
webpack 从指定入口文件中提取公共文件的方法
Nov 13 #Javascript
详解Vue实战指南之依赖注入(provide/inject)
Nov 13 #Javascript
node.js爬取中关村的在线电瓶车信息
Nov 13 #Javascript
详解Vue SSR( Vue2 + Koa2 + Webpack4)配置指南
Nov 13 #Javascript
详解Vue组件插槽的使用以及调用组件内的方法
Nov 13 #Javascript
Vue实现一个无限加载列表功能
Nov 13 #Javascript
You might like
PHP自定义函数获取汉字首字母的方法
2016/12/01 PHP
js多级树形弹出一个小窗口层(非常好用)实例代码
2013/03/19 Javascript
解析JSON对象与字符串之间的相互转换
2013/12/18 Javascript
jquery过滤特殊字符',防sql注入的实现方法
2016/08/17 Javascript
jQuery可见性过滤选择器用法示例
2016/09/09 Javascript
浅谈Angularjs link和compile的使用区别
2016/10/21 Javascript
JS查找字符串中出现最多的字符及个数统计
2017/02/04 Javascript
解决linux下node.js全局模块找不到的问题
2018/05/15 Javascript
基于JavaScript实现猜数字游戏代码实例
2020/07/30 Javascript
vue自定义指令和动态路由实现权限控制
2020/08/28 Javascript
[01:03:36]Ti4 循环赛第三日DK vs Titan
2014/07/12 DOTA
[01:03:41]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第一场 12.17
2020/12/19 DOTA
Python编写生成验证码的脚本的教程
2015/05/04 Python
Python的time模块中的常用方法整理
2015/06/18 Python
Python爬取国外天气预报网站的方法
2015/07/10 Python
Python编程判断这天是这一年第几天的方法示例
2017/04/18 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
Python3.6实现连接mysql或mariadb的方法分析
2018/05/18 Python
python模块导入的细节详解
2018/12/10 Python
使用python实现离散时间傅里叶变换的方法
2019/09/02 Python
Python动态声明变量赋值代码实例
2019/12/30 Python
Python接口测试数据库封装实现原理
2020/05/09 Python
python ssh 执行shell命令的示例
2020/09/29 Python
css3实现的下拉菜单效果示例
2014/01/22 HTML / CSS
基于html5 canvas做批改作业的小插件
2020/05/20 HTML / CSS
Melijoe时尚童装德国官网:Melijoe德国
2016/09/03 全球购物
Pretty Little Thing爱尔兰:时尚女性服饰
2017/03/27 全球购物
Gap英国官网:Gap UK
2018/07/18 全球购物
荷兰音乐会和音乐剧门票订购网站:Topticketshop
2019/08/27 全球购物
生物技术研究生自荐信
2013/11/12 职场文书
教师党员承诺书
2014/03/25 职场文书
活动总结格式范文
2014/04/26 职场文书
工地安全质量标语
2014/06/07 职场文书
铅球加油稿100字
2014/09/26 职场文书
试用期自我评价范文
2015/03/10 职场文书
总结高并发下Nginx性能如何优化
2021/11/01 Servers