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 撑出页面文字换行
Jun 15 Javascript
JavaScript 监听textarea中按键事件
Oct 08 Javascript
js tab效果的实现代码
Dec 26 Javascript
javascript图片相似度算法实现 js实现直方图和向量算法
Jan 14 Javascript
alert出数组中的随即值代码
Sep 25 Javascript
Bootstrap零基础学习第一课之模板
Jul 18 Javascript
JS中位置与大小的获取方法
Nov 22 Javascript
原生js更改css样式的两种方式
Mar 15 Javascript
用vue的双向绑定简单实现一个todo-list的示例代码
Aug 03 Javascript
PHP 实现一种多文件上传的方法
Sep 20 Javascript
JS实现统计字符串中字符出现个数及最大个数功能示例
Jun 04 Javascript
Vue3新特性之在Composition API中使用CSS Modules
Jul 13 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 SPL标准库之SplFixedArray使用实例
2015/05/12 PHP
CodeIgniter多语言实现方法详解
2016/01/20 PHP
php面向对象值单例模式
2016/05/03 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
laravel请求参数校验方法
2019/10/10 PHP
Javascript控制input输入时间格式的方法
2015/01/28 Javascript
微信支付如何实现内置浏览器的H5页面支付
2015/09/25 Javascript
详解Bootstrap插件
2016/04/25 Javascript
JavaScript基础重点(必看)
2016/07/09 Javascript
Javascript+CSS3实现进度条效果
2016/10/28 Javascript
js+html5实现复制文字按钮
2017/07/15 Javascript
微信小程序实现顶部选项卡(swiper)
2020/06/19 Javascript
NodeJS实现视频转码的示例代码
2017/11/18 NodeJs
jQuery实现购物车的总价计算和总价传值功能
2018/11/28 jQuery
原生JS实现的跳一跳小游戏完整实例
2019/01/27 Javascript
从0到1构建vueSSR项目之node以及vue-cli3的配置
2019/03/07 Javascript
详解微信小程序开发用户授权登陆
2019/04/24 Javascript
React如何实现浏览器打印部分内容详析
2019/05/19 Javascript
vue中的面包屑导航组件实例代码
2019/07/01 Javascript
js 实现ajax发送步骤过程详解
2019/07/25 Javascript
[01:18:35]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第一场 1月29日
2021/03/11 DOTA
深入Python函数编程的一些特性
2015/04/13 Python
python3对拉勾数据进行可视化分析的方法详解
2019/04/03 Python
安装docker-compose的两种最简方法
2019/07/30 Python
Django ORM 常用字段与不常用字段汇总
2019/08/09 Python
Python xpath表达式如何实现数据处理
2020/06/13 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
2020/06/28 Python
django 将自带的数据库sqlite3改成mysql实例
2020/07/09 Python
Numpy中的数组搜索中np.where方法详细介绍
2021/01/08 Python
英国家用电器折扣网站:Electrical Discount UK
2018/09/17 全球购物
初一体育教学反思
2014/01/29 职场文书
解除劳动关系协议书范文
2014/09/11 职场文书
校园会短篇的广播稿
2014/10/21 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
公积金接收函格式
2015/01/30 职场文书
2015年实习单位评语
2015/03/25 职场文书