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学习笔记之Helloworld
Dec 22 Javascript
jquery设置text的值示例(设置文本框 DIV 表单值)
Jan 06 Javascript
js实现温度计时间样式代码分享
Aug 21 Javascript
Javascript 计算字符串在localStorage中所占字节数
Oct 21 Javascript
JQuery zClip插件实现复制页面内容到剪贴板
Nov 02 Javascript
js 获取经纬度的实现方法
Jun 20 Javascript
用JS实现轮播图效果(二)
Jun 26 Javascript
Angular HMR(热模块替换)功能实现方法
Apr 04 Javascript
当vue路由变化时,改变导航栏的样式方法
Aug 22 Javascript
JS实现深度优先搜索求解两点间最短路径
Jan 17 Javascript
vue实现pdf文档在线预览功能
Nov 26 Javascript
JavaScript ES 模块的使用
Nov 12 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
WIN98下Apache1.3.14+PHP4.0.4的安装
2006/10/09 PHP
PHP对象递归引用造成内存泄漏分析
2014/08/28 PHP
Zend Framework入门教程之Zend_Session会话操作详解
2016/12/08 PHP
php实现解析xml并生成sql语句的方法
2018/02/03 PHP
简单三步,搞掂内存泄漏
2007/03/10 Javascript
javascript 图片上一张下一张链接效果代码
2010/03/12 Javascript
cookie在javascript中的使用技巧以及隐私在服务器端的设置
2012/12/03 Javascript
多个checkbox被选中时如何判断是否有自己想要的
2014/09/22 Javascript
js与jquery回车提交的方法
2015/02/03 Javascript
jQuery实现二级下拉菜单效果
2016/01/05 Javascript
jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
2016/02/25 Javascript
jquery 遍历数组 each 方法详解
2016/05/25 Javascript
Node.js Addons翻译(C/C++扩展)
2016/06/12 Javascript
AngularJS 中的事件详解
2016/07/28 Javascript
Vue.js 2.0窥探之Virtual DOM到底是什么?
2017/02/10 Javascript
Vuejs实现带样式的单文件组件新方法
2017/05/02 Javascript
VUE2.0中Jsonp的使用方法
2018/05/22 Javascript
vue添加class样式实例讲解
2019/02/12 Javascript
如何让微信小程序页面之间的通信不再变困难
2019/06/03 Javascript
JavaScript实现缓动动画
2020/11/25 Javascript
深入理解Python对Json的解析
2017/02/14 Python
python爬虫 正则表达式使用技巧及爬取个人博客的实例讲解
2017/10/20 Python
学习Python selenium自动化网页抓取器
2018/01/20 Python
Python docx库用法示例分析
2019/02/16 Python
Django 中间键和上下文处理器的使用
2019/03/17 Python
Python使用正则表达式分割字符串的实现方法
2019/07/16 Python
python函数参数(必须参数、可变参数、关键字参数)
2019/08/16 Python
django模型动态修改参数,增加 filter 字段的方式
2020/03/16 Python
CSS3教程:background-clip和background-origin
2008/10/17 HTML / CSS
俄罗斯首家面向中国消费者的一站式购物网站:Wruru
2020/05/08 全球购物
酒店总经理欢迎词
2014/01/15 职场文书
小学防溺水制度
2014/01/29 职场文书
初中语文教学反思
2014/02/02 职场文书
银行求职自荐信
2014/06/30 职场文书
幼儿园门卫安全责任书
2015/05/08 职场文书
2016见义勇为事迹材料汇总
2016/03/01 职场文书