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 相关文章推荐
怎么用javascript进行拖拽
Jul 20 Javascript
JS 面向对象的5钟写法
Jul 31 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
Jun 12 Javascript
Three.js学习之几何形状
Aug 01 Javascript
jquery 动态增加删除行的简单实例(推荐)
Oct 12 Javascript
yarn与npm的命令行小结
Oct 20 Javascript
使用jQuery ajaxupload插件实现无刷新上传文件
Apr 23 jQuery
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
Aug 18 Javascript
微信小程序实现流程进度的图样式功能
Jan 16 Javascript
JavaScript实现求最大公共子串的方法
Feb 03 Javascript
浅谈webpack 构建性能优化策略小结
Jun 13 Javascript
浅析Vue.js 中的条件渲染指令
Nov 19 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循环检测目录是否存在并创建(循环创建目录)
2011/01/06 PHP
解析php做推送服务端实现ios消息推送
2013/07/01 PHP
php实现指定字符串中查找子字符串的方法
2015/03/17 PHP
Laravel框架基于ajax和layer.js实现无刷新删除功能示例
2019/01/17 PHP
用js判断用户浏览器是否是XP SP2的IE6
2007/03/08 Javascript
JavaScript 继承详解(一)
2009/07/13 Javascript
jQuery1.6 使用方法二
2011/11/23 Javascript
通过Jquery的Ajax方法读取将table转换为Json
2014/05/31 Javascript
使用原生JS实现弹出层特效
2014/12/22 Javascript
常用的jQuery前端技巧收集
2014/12/24 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
解析如何利用iframe标签以及js制作时钟
2016/12/08 Javascript
jQuery Pagination分页插件使用方法详解
2017/02/28 Javascript
详解vue跨组件通信的几种方法
2017/06/15 Javascript
JavaScript 中的12种循环遍历方法【总结】
2018/05/31 Javascript
使用svg实现动态时钟效果
2018/07/17 Javascript
webpack4 SCSS提取和懒加载的示例
2018/09/03 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
2019/08/05 Javascript
Webpack中SplitChunksPlugin 配置参数详解
2020/03/24 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
[17:00]DOTA2 HEROS教学视频教你分分钟做大人-帕克
2014/06/10 DOTA
python正则表达式re模块详解
2014/06/25 Python
Flask框架响应、调度方法和蓝图操作实例分析
2018/07/24 Python
查看python安装路径及pip安装的包列表及路径
2019/04/03 Python
python绘制雪景图
2019/12/16 Python
MANGO官方网站:西班牙芒果服装品牌
2017/01/15 全球购物
美国女士泳装店:Swimsuits For All
2017/03/02 全球购物
乐高奥地利官方商店:LEGO Shop AT
2019/07/16 全球购物
如何减少垃圾回收让内存更加有效使用
2013/10/18 面试题
META-INF文件夹中的MANIFEST.MF的作用
2016/06/21 面试题
小学生获奖感言范文
2014/02/02 职场文书
建设投标担保书
2014/05/13 职场文书
企业年度评优方案
2014/06/02 职场文书
三好学生个人总结
2015/02/15 职场文书
运动会闭幕式致辞
2015/07/29 职场文书
详解PHP用mb_string处理windows中文字符
2021/05/26 PHP