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 ready函数、css函数及text()使用示例
Sep 27 Javascript
jQuery实现弹出窗口中切换登录与注册表单
Jun 05 Javascript
JS实现的另类手风琴效果网页内容切换代码
Sep 08 Javascript
javascript精确统计网站访问量实例代码
Dec 19 Javascript
原生js实现鼠标跟随效果
Feb 28 Javascript
浅入深出Vue之组件使用
Jul 11 Javascript
基于layui实现高级搜索(筛选)功能
Jul 26 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
Nov 21 Javascript
JavaScript直接调用函数与call调用的区别实例分析
May 22 Javascript
如何使用JavaScript实现无缝滚动自动播放轮播图效果
Aug 20 Javascript
vue+node 实现视频在线播放的实例代码
Oct 19 Javascript
js中Map和Set的用法及区别实例详解
Feb 15 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” 彩蛋进行敏感信息获取
2013/08/07 PHP
PHP实现采集抓取淘宝网单个商品信息
2015/01/08 PHP
PHP随机生成信用卡卡号的方法
2015/03/23 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
yii2实现Ueditor百度编辑器的示例代码
2018/11/02 PHP
Javascript里使用Dom操作Xml
2007/01/22 Javascript
JQuery循环滚动图片代码
2011/12/08 Javascript
中文字符串截取的js函数代码
2013/04/17 Javascript
将Datatable转化成json发送前台实现思路
2013/09/06 Javascript
深入理解JavaScript编程中的同步与异步机制
2015/06/24 Javascript
js实现简单的联动菜单效果
2015/08/19 Javascript
JavaScript基本数据类型及值类型和引用类型
2015/08/25 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
2015/09/19 Javascript
利用jsonp跨域调用百度js实现搜索框智能提示
2016/08/24 Javascript
微信小程序 开发工具快捷键整理
2016/10/31 Javascript
BootStrap Validator 版本差异问题导致的submitHandler失效问题的解决方法
2016/12/01 Javascript
Vue 实现创建全局组件,并且使用Vue.use() 载入方式
2020/08/11 Javascript
在Python的Bottle框架中使用微信API的示例
2015/04/23 Python
Python元字符的用法实例解析
2018/01/17 Python
TensorFlow神经网络优化策略学习
2018/03/09 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
2018/06/27 Python
python3利用tcp实现文件夹远程传输
2018/07/28 Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
2019/03/01 Python
python判断链表是否有环的实例代码
2020/01/31 Python
Python可变对象与不可变对象原理解析
2020/02/25 Python
Numpy中ndim、shape、dtype、astype的用法详解
2020/06/14 Python
python实现AHP算法的方法实例(层次分析法)
2020/09/09 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
2020/11/26 Python
Bluebella美国官网:英国性感内衣品牌
2018/10/04 全球购物
经典c++面试题二
2015/08/14 面试题
咖啡店的创业计划书,让你hold不住
2014/01/03 职场文书
数学系个人求职信范文
2014/01/30 职场文书
课内比教学心得体会
2014/09/09 职场文书
小学语文教学随笔
2015/08/14 职场文书
咖啡厅里的创业计划书
2019/08/21 职场文书
python绘制箱型图
2021/04/27 Python