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 相关文章推荐
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
May 27 Javascript
深入理解JavaScript内置函数
Jun 03 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
Feb 17 Javascript
解决BootStrap Fileinput手机图片上传显示旋转问题
Jun 01 Javascript
js Date()日期函数浏览器兼容问题解决方法
Sep 12 Javascript
js 两数组去除重复数值的实例
Dec 06 Javascript
vue axios请求超时的正确处理方法
Apr 02 Javascript
微信小程序中button去除默认的边框实例代码
Aug 01 Javascript
微信小程序实现下滑到底部自动翻页功能
Mar 07 Javascript
JS深入学习之数组对象排序操作示例
May 01 Javascript
vue中keep-alive、activated的探讨和使用详解
Jul 26 Javascript
如何手写一个简易的 Vuex
Oct 10 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代码质量36计
2012/09/05 PHP
php5.5新数组函数array_column使用
2013/07/08 PHP
php通过正则表达式记取数据来读取xml的方法
2015/03/09 PHP
初识PHP中的Swoole
2016/04/05 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
2017/09/02 PHP
PHP getName()函数讲解
2019/02/03 PHP
Laravel框架实现多个视图共享相同数据的方法详解
2019/07/09 PHP
做网页的一些技巧(续)
2007/02/01 Javascript
jQuery选择没有colspan属性的td的代码
2010/07/06 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
2013/12/29 Javascript
jQuery实现跨域
2015/02/03 Javascript
jQuery实现文件上传进度条特效
2015/08/12 Javascript
深入分析Javascript事件代理
2016/01/30 Javascript
AngularJS使用ng-repeat指令实现下拉框
2016/08/23 Javascript
jQuery插件zTree实现单独选中根节点中第一个节点示例
2017/03/08 Javascript
jquery.masonry瀑布流效果
2017/05/25 jQuery
vue-router动态设置页面title的实例讲解
2018/08/30 Javascript
JS数组实现分类统计实例代码
2018/09/30 Javascript
小程序点击图片实现自动播放视频
2020/05/29 Javascript
vue项目开启Gzip压缩和性能优化操作
2020/10/26 Javascript
python分块读取大数据,避免内存不足的方法
2018/12/10 Python
Python实现繁?转为简体的方法示例
2018/12/18 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
使用TensorFlow直接获取处理MNIST数据方式
2020/02/10 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
2020/02/25 Python
基于matplotlib中ion()和ioff()的使用详解
2020/06/16 Python
Python结合Window计划任务监测邮件的示例代码
2020/08/05 Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
2020/08/17 Python
CSS3实现3D翻书效果
2016/06/20 HTML / CSS
HTML5中canvas中的beginPath()和closePath()的重要性
2018/08/24 HTML / CSS
MediaMarkt比利时:欧洲最大电器连锁店
2020/12/21 全球购物
WebSphere面试题:在WebSphere里面如何部署一个应用
2015/08/02 面试题
校园新闻广播稿
2014/01/10 职场文书
农村文化建设标语
2014/10/07 职场文书
龙潭大峡谷导游词
2015/02/10 职场文书
PyTorch device与cuda.device用法
2022/04/03 Python