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 相关文章推荐
js常用函数 不错
Sep 08 Javascript
Javascript 面向对象特性
Dec 28 Javascript
jQuery DOM操作小结与实例
Jan 07 Javascript
js中判断文本框是否为空的两种方法
Jul 31 Javascript
ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
Dec 11 Javascript
jQuery控制网页打印指定区域的方法
Apr 07 Javascript
JS实现的文字与图片定时切换效果代码
Oct 06 Javascript
AngularJS使用ngOption实现下拉列表的实例代码
Jan 23 Javascript
JS组件Bootstrap实现弹出框效果代码
Apr 26 Javascript
详解MVC如何使用开源分页插件(shenniu.pager.js)
Dec 16 Javascript
JS实现数组深拷贝的方法分析
Mar 06 Javascript
vue3中provide && inject的使用
Jul 01 Vue.js
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
PHP5常用函数列表(分享)
2013/06/07 PHP
探讨捕获php错误信息方法的详解
2013/06/09 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
2015/10/09 PHP
php数组冒泡排序算法实例
2016/05/06 PHP
js 颜色选择器(兼容firefox)
2009/03/05 Javascript
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
Yii-自定义删除确认弹框(zyd)jquery实现代码
2013/03/04 Javascript
js获取某月的最后一天日期的简单实例
2013/06/22 Javascript
火狐下table中创建form导致两个table之间出现空白
2013/09/02 Javascript
jQuery中验证表单提交方式及序列化表单内容的实现
2014/01/06 Javascript
判断iframe里的页面是否加载完成
2014/06/06 Javascript
javascript中声明函数的方法及调用函数的返回值
2014/07/22 Javascript
JavaScript Promise启示录
2014/08/12 Javascript
jQuery自带的一些常用方法总结
2014/09/03 Javascript
js实现按钮加背景图片常用方法
2014/11/01 Javascript
jquery实现拖动效果
2016/08/10 Javascript
jQuery+CSS3实现仿花瓣网固定顶部位置带悬浮效果的导航菜单
2016/09/21 Javascript
web.js.字符串与正则表达式操作
2017/05/13 Javascript
详解node child_process模块学习笔记
2018/01/24 Javascript
nodejs微信扫码支付功能实现
2018/02/17 NodeJs
Vue表单控件绑定图文详解
2019/02/11 Javascript
vuejs移动端实现div拖拽移动
2019/07/25 Javascript
详解Python学习之安装pandas
2019/04/16 Python
Atom Python 配置Python3 解释器的方法
2019/08/28 Python
pytorch获取模型某一层参数名及参数值方式
2019/12/30 Python
Python如何截图保存的三种方法(小结)
2020/09/01 Python
基于Python的图像阈值化分割(迭代法)
2020/11/20 Python
施华洛世奇匈牙利官网:SWAROVSKI匈牙利
2019/07/06 全球购物
美国隐形眼镜网上商店:Lens.com
2019/09/03 全球购物
Linux面试题LINUX系统类
2014/11/19 面试题
简历中个人自我评价范文
2013/12/26 职场文书
高二地理教学反思
2014/01/24 职场文书
焦裕禄精神心得体会
2014/09/02 职场文书
2014年体检中心工作总结
2014/12/23 职场文书
保管员岗位职责
2015/02/14 职场文书
地球上的星星观后感
2015/06/02 职场文书