vue路由传参三种基本方式详解


Posted in Javascript onDecember 09, 2019

这篇文章主要介绍了vue路由传参三种基本方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

现有如下场景,点击父组件的li元素跳转到子组件中,并携带参数,便于子组件获取数据。

父组件中:

<li v-for="article in articles" @click="getDescribe(article.id)">

methods:

方案一:

getDescribe(id) {
//  直接调用$router.push 实现携带参数的跳转
    this.$router.push({
     path: `/describe/${id}`,
    })

方案一,需要对应路由配置如下:

{
   path: '/describe/:id',
   name: 'Describe',
   component: Describe
  }

很显然,需要在path中添加/:id来对应 $router.push 中path携带的参数。在子组件中可以使用来获取传递的参数值。

this.$route.params.id

方案二:

父组件中:通过路由属性中的name来确定匹配的路由,通过params来传递参数。

this.$router.push({
     name: 'Describe',
     params: {
      id: id
     }
    })

对应路由配置: 这里可以添加:/id 也可以不添加,不添加数据会在url后面显示,不添加数据就不会显示

{
   path: '/describe',
   name: 'Describe',
   component: Describe
  }

子组件中: 这样来获取参数

this.$route.params.id

方案三:

父组件:使用path来匹配路由,然后通过query来传递参数

这种情况下 query传递的参数会显示在url后面?id=?

this.$router.push({
     path: '/describe',
     query: {
      id: id
     }
    })

对应路由配置:

{
   path: '/describe',
   name: 'Describe',
   component: Describe
  }

对应子组件: 这样来获取参数

this.$route.query.id

注意事项:

1)、这里要特别注意在父组件中跳转到子组件使用

this.$router.push("/Home");//不传参
this.$router.push({
});//传参,参数以字段的形式加入到对象大括号{ }中

2)、在子组件中获取参数的时候是

this.$route.params.id

this.$route.query.id

注意是route而不是router

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
获取页面高度,窗口高度,滚动条高度等参数值getPageSize,getPageScroll
Sep 22 Javascript
js鼠标悬浮出现遮罩层的方法
Jan 28 Javascript
JavaScript在网页中画圆的函数arc使用方法
Nov 13 Javascript
创建自己的jquery表格插件
Nov 25 Javascript
ES6记录异步函数的执行时间详解
Aug 31 Javascript
单击按钮发送验证码,出现倒计时的简单实例
Mar 17 Javascript
JS简单实现数组去重的方法示例
Mar 27 Javascript
ES6正则表达式扩展笔记
Jul 25 Javascript
vue.js过滤器+ajax实现事件监听及后台php数据交互实例
May 22 Javascript
JS实现监控微信小程序的原理
Jun 15 Javascript
vue初始化动画加载的实例
Sep 01 Javascript
深入解析koa之异步回调处理
Jun 17 Javascript
vue使用nprogress实现进度条
Dec 09 #Javascript
javascript数组元素删除方法delete和splice解析
Dec 09 #Javascript
vue vant Area组件使用详解
Dec 09 #Javascript
JS中的模糊查询功能
Dec 08 #Javascript
详解一些适用于Node.js的命名约定
Dec 08 #Javascript
微信域名检测接口调用演示步骤(含PHP、Python)
Dec 08 #Javascript
vue实现数字动态翻牌的效果(开箱即用)
Dec 08 #Javascript
You might like
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
2009/05/27 PHP
PHP下对字符串的递增运算代码
2010/08/21 PHP
apache和php之间协同工作的配置经验分享
2013/04/08 PHP
PHP array_multisort() 函数的深入解析
2013/06/20 PHP
PHP实现显示照片exif信息的方法
2014/07/11 PHP
smarty中js的调用方法示例
2014/10/27 PHP
ThinkPHP模型详解
2015/07/27 PHP
php删除数组指定元素实现代码
2017/05/03 PHP
PHP+mysql防止SQL注入的方法小结
2019/04/27 PHP
laravel框架使用极光推送消息操作示例
2020/02/15 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
2020/10/30 PHP
[原创]js获取数组任意个不重复的随机数组元素
2010/03/15 Javascript
JQuery在光标位置插入内容的实现代码
2010/06/18 Javascript
Js组件的一些写法
2010/09/10 Javascript
javascript转换日期字符串为Date日期对象的方法
2015/02/13 Javascript
跟我学习javascript的浮点数精度
2015/11/16 Javascript
Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果
2017/10/31 Javascript
vue init失败简单解决方法(终极版)
2017/12/22 Javascript
vue组件实现进度条效果
2018/06/06 Javascript
Vue+elementui 实现复杂表头和动态增加列的二维表格功能
2019/09/23 Javascript
javascript数组的定义及操作实例
2019/11/10 Javascript
[45:17]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第三场 1月9日
2021/03/11 DOTA
python实现随机密码字典生成器示例
2014/04/09 Python
win系统下为Python3.5安装flask-mongoengine 库
2016/12/20 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
2019/03/22 Python
解决Python中pandas读取*.csv文件出现编码问题
2019/07/12 Python
简单了解python中的f.b.u.r函数
2019/11/02 Python
Python实现投影法分割图像示例(一)
2020/01/17 Python
浅析关于Keras的安装(pycharm)和初步理解
2020/10/23 Python
HTML5触摸事件(touchstart、touchmove和touchend)的实现
2020/05/08 HTML / CSS
雅诗兰黛加拿大官网:Estee Lauder加拿大
2019/07/31 全球购物
东南亚冒险旅行与活动:Adventoro
2019/10/16 全球购物
美容师的职业规划书
2013/12/27 职场文书
关于十八大的演讲稿
2014/09/15 职场文书
大学生军训自我鉴定范文
2014/09/18 职场文书
用Python制作灯光秀短视频的思路详解
2021/04/13 Python