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 相关文章推荐
[全兼容哦]--实用、简洁、炫酷的页面转入效果loing
May 07 Javascript
Javascript &amp; DHTML 实例编程(教程)基础知识
Jun 02 Javascript
在js文件中如何获取basePath处理js路径问题
Jul 10 Javascript
提高jQuery性能的十个诀窍
Nov 14 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
Mar 23 Javascript
AngularJs Dependency Injection(DI,依赖注入)
Sep 02 Javascript
微信小程序tabBar底部导航中文注解api详解
Aug 16 Javascript
Vue页面骨架屏注入方法
May 13 Javascript
vue+iview 兼容IE11浏览器的实现方法
Jan 07 Javascript
微信公众号H5支付接口调用方法
Jan 10 Javascript
vue配置文件实现代理v2版本的方法
Jun 21 Javascript
游戏开发中如何使用CocosCreator进行音效处理
Apr 14 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
session在php5.3中的变化 session_is_registered() is deprecated in
2013/11/12 PHP
PHP采集类snoopy详细介绍(snoopy使用教程)
2014/06/19 PHP
30个最佳jQuery Lightbox效果插件分享
2011/04/11 Javascript
ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
2012/02/03 Javascript
脚本合并提升javascript性能示例
2014/02/24 Javascript
JavaScript极简入门教程(一):基础篇
2014/10/25 Javascript
JS文字球状放大效果代码分享
2015/08/19 Javascript
jQuery拖动布局其结果保存到数据库
2015/10/09 Javascript
JS实现slide文字框缩放伸展效果代码
2015/11/05 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
2016/01/08 Javascript
JS实现设置ff与ie元素绝对位置的方法
2016/03/08 Javascript
Summernote实现图片上传功能的简单方法
2016/07/11 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
vue实现简单表格组件实例详解
2017/04/16 Javascript
vue简单练习 桌面时钟的实现代码实例
2019/09/19 Javascript
vue 组件简介
2020/07/31 Javascript
[01:15:00]LGD vs Mineski Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
python对指定目录下文件进行批量重命名的方法
2015/04/18 Python
Python实现KNN邻近算法
2021/01/28 Python
python遍历文件夹下所有excel文件
2018/01/03 Python
python中in在list和dict中查找效率的对比分析
2018/05/04 Python
利用Tensorflow的队列多线程读取数据方式
2020/02/05 Python
使用python计算三角形的斜边例子
2020/04/15 Python
python使用matplotlib绘制折线图的示例代码
2020/09/22 Python
利用CSS3实现的文字定时向上滚动
2016/08/29 HTML / CSS
清除canvas画布内容(点擦除+线擦除)
2020/08/12 HTML / CSS
彪马英国官网:PUMA英国
2019/02/11 全球购物
计算机大学生职业生涯规划书范文
2014/02/19 职场文书
学生会主席演讲稿
2014/04/25 职场文书
社区党建工作方案
2014/06/10 职场文书
“四风”问题自我剖析材料思想汇报
2014/09/23 职场文书
2015年营销工作总结范文
2015/04/23 职场文书
宣传稿格式范文
2015/07/23 职场文书
教师节感想
2015/08/11 职场文书
分享:关于学习的励志名言赏析
2019/08/16 职场文书
使用springboot暴露oracle数据接口的问题
2021/05/07 Oracle