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实现的UBB编码函数
Mar 09 Javascript
dwr spring的集成实现代码
Mar 22 Javascript
使用SyntaxHighlighter实现HTML高亮显示代码的方法
Feb 04 Javascript
基于jquery扩展漂亮的下拉框可以二次修改
Nov 19 Javascript
node.js中的http.response.getHeader方法使用说明
Dec 14 Javascript
javascript数组输出的两种方式
Jan 13 Javascript
jQuery插件制作的实例教程
May 16 Javascript
浅谈JavaScript 函数参数传递到底是值传递还是引用传递
Aug 23 Javascript
Bootstrap 手风琴菜单的实现代码
Jan 20 Javascript
Vue非父子组件通信详解
Jun 12 Javascript
js+html5 canvas实现ps钢笔抠图
Apr 28 Javascript
详解JavaScript的this指向和绑定
Sep 08 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
thinkphp缓存技术详解
2014/12/09 PHP
PHP会话控制实例分析
2016/12/24 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
2018/04/08 PHP
浅谈laravel框架sql中groupBy之后排序的问题
2019/10/17 PHP
有关PHP 中 config.m4 的探索
2020/08/26 PHP
永不消失的title提示代码
2007/02/15 Javascript
jQuery 源代码显示控件 (Ajax加载方式).
2009/05/18 Javascript
jQuery 使用手册(五)
2009/09/23 Javascript
EXT中xtype的含义分析
2010/01/07 Javascript
jquery删除指定的html标签并保留标签内文本内容的方法
2014/04/02 Javascript
JQuery实现展开关闭层的方法
2015/02/17 Javascript
使用jquery组件qrcode生成二维码及应用指南
2015/02/22 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
jQuery实现弹出带遮罩层的居中浮动窗口效果
2016/09/12 Javascript
JavaScript内存泄漏的处理方式
2017/11/20 Javascript
使用async-validator编写Form组件的方法
2018/01/10 Javascript
vue 组件中添加样式不生效的解决方法
2018/07/06 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
2018/11/08 Javascript
Node.js 获取微信JS-SDK CONFIG的方法示例
2019/05/21 Javascript
vue 使用lodash实现对象数组深拷贝操作
2020/09/10 Javascript
利用vue3+ts实现管理后台(增删改查)
2020/10/30 Javascript
分析Python中解析构建数据知识
2018/01/20 Python
基于python-opencv3的图像显示和保存操作
2019/06/27 Python
python如何读取bin文件并下发串口
2019/07/05 Python
django数据库自动重连的方法实例
2019/07/21 Python
Python学习笔记之函数的定义和作用域实例详解
2019/08/13 Python
pytorch:model.train和model.eval用法及区别详解
2020/02/20 Python
django模型类中,null=True,blank=True用法说明
2020/07/09 Python
用python给csv里的数据排序的具体代码
2020/07/17 Python
CSS3 倾斜的网页图片库实例教程
2009/11/14 HTML / CSS
埃弗顿足球俱乐部官方网上商店:Everton Direct
2018/01/13 全球购物
网络技术支持面试题
2013/04/22 面试题
出国留学担保书
2014/05/20 职场文书
社团活动总结怎么写
2014/06/30 职场文书
沙滩主题婚礼活动策划方案
2014/09/15 职场文书
Vue如何实现组件间通信
2021/05/15 Vue.js