vue路由传参的基本实现方式小结【三种方式】


Posted in Javascript onFebruary 05, 2020

本文实例讲述了vue路由传参的基本实现方式。分享给大家供大家参考,具体如下:

前言

vue 路由传参的使用场景一般都是应用在父路由跳转到子路由时,携带参数跳转。传参方式可划分为 params 传参和 query 传参,而 params 传参又可分为在 url 中显示参数和不显示参数两种方式,这就是vue路由传参的三种方式。

方式一:params 传参(显示参数)

params 传参(显示参数)又可分为 声明式 和 编程式 两种方式

1、声明式 router-link

该方式是通过 router-link 组件的 to 属性实现,该方法的参数可以是一个字符串路径,或者一个描述地址的对象。使用该方式传值的时候,需要子路由提前配置好参数,例如:

//子路由配置
{
 path: '/child/:id',
 component: Child
}
//父路由组件
<router-link :to="/child/123">进入Child路由</router-link>

2、编程式 this.$router.push

使用该方式传值的时候,同样需要子路由提前配置好参数,例如:

//子路由配置
{
 path: '/child/:id',
 component: Child
}
//父路由编程式传参(一般通过事件触发)
this.$router.push({
  path:'/child/${id}',
})

在子路由中可以通过下面代码来获取传递的参数值

this.$route.params.id

方式二:params 传参(不显示参数)

params 传参(不显示参数)也可分为 声明式 和 编程式 两种方式,与方式一不同的是,这里是通过路由的别名 name 进行传值的

1、声明式 router-link

该方式也是通过 router-link 组件的 to 属性实现,例如:

<router-link :to="{name:'Child',params:{id:123}}">进入Child路由</router-link>

2、编程式 this.$router.push

使用该方式传值的时候,同样需要子路由提前配置好参数,不过不能再使用 :/id 来传递参数了,因为父路由中,已经使用 params 来携带参数了,例如:

//子路由配置
{
 path: '/child,
 name: 'Child',
 component: Child
}
//父路由编程式传参(一般通过事件触发)
this.$router.push({
  name:'Child',
  params:{
   id:123
  }
})

在子路由中可以通过下面代码来获取传递的参数值

this.$route.params.id

注意:上述这种利用 params 不显示 url 传参的方式会导致在刷新页面的时候,传递的值会丢失

方式三:query 传参(显示参数)

query 传参(显示参数)也可分为 声明式 和 编程式 两种方式

1、声明式 router-link

该方式也是通过 router-link 组件的 to 属性实现,不过使用该方式传值的时候,需要子路由提前配置好路由别名(name 属性),例如:

//子路由配置
{
 path: '/child,
 name: 'Child',
 component: Child
}
//父路由组件
<router-link :to="{name:'Child',query:{id:123}}">进入Child路由</router-link>

2、编程式 this.$router.push

使用该方式传值的时候,同样需要子路由提前配置好路由别名(name 属性),例如:

//子路由配置
{
 path: '/child,
 name: 'Child',
 component: Child
}
//父路由编程式传参(一般通过事件触发)
this.$router.push({
  name:'Child',
  params:{
   id:123
  }
})

在子路由中可以通过下面代码来获取传递的参数值

this.$route.query.id

希望本文所述对大家vue.js程序设计有所帮助。

Javascript 相关文章推荐
IE8下关于querySelectorAll()的问题
May 13 Javascript
jquery弹出框的用法示例(2)
Aug 26 Javascript
JS实现当前页居中分页效果的方法
Jun 18 Javascript
Node.js事件驱动
Jun 18 Javascript
js实现input框文字动态变换显示效果
Aug 19 Javascript
JavaScript实现三级联动菜单效果
Aug 16 Javascript
layer实现关闭弹出层刷新父界面功能详解
Nov 15 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
Feb 02 jQuery
vue cli安装使用less的教程详解
Jul 12 Javascript
详解小程序如何动态绑定点击的执行方法
Nov 26 Javascript
阿望教你用vue写扫雷小游戏
Jan 20 Javascript
vue自定义标签和单页面多路由的实现代码
May 03 Javascript
Vuex的API文档说明详解
Feb 05 #Javascript
如何实现iframe父子传参通信
Feb 05 #Javascript
JavaScript对象原型链原理详解
Feb 05 #Javascript
基于Vue的侧边目录组件的实现
Feb 05 #Javascript
Js视频播放器插件Video.js使用方法详解
Feb 04 #Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
Feb 04 #jQuery
JS代码优化的8点建议
Feb 04 #Javascript
You might like
一个简单的PHP&amp;MYSQL留言板源码
2020/07/19 PHP
php 数组的创建、调用和更新实现代码
2009/03/09 PHP
php 不同编码下的字符串长度区分
2009/09/26 PHP
基于PHP导出Excel的小经验 完美解决乱码问题
2013/06/10 PHP
PHP file_get_contents设置超时处理方法
2013/09/30 PHP
php实现用于验证所有类型的信用卡类
2015/03/24 PHP
PHP实现的pdo连接数据库并插入数据功能简单示例
2019/03/30 PHP
PHP切割汉字的常用方法实例总结
2019/04/27 PHP
做网页的一些技巧(续)
2007/02/01 Javascript
Jquery和JS用外部变量获取Ajax返回的参数值的方法实例(超简单)
2013/06/17 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
2014/10/20 Javascript
js style.display=block显示布局错乱问题的解决方法
2016/09/21 Javascript
javascript实现日期三级联动下拉框选择菜单
2020/12/03 Javascript
element ui里dialog关闭后清除验证条件方法
2018/02/26 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
浅谈vue中$bus的使用和涉及到的问题
2020/07/28 Javascript
JSONLINT:python的json数据验证库实例解析
2017/11/28 Python
用Python写一段用户登录的程序代码
2018/04/22 Python
PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上
2019/04/01 Python
浅析PyTorch中nn.Module的使用
2019/08/18 Python
python BlockingScheduler定时任务及其他方式的实现
2019/09/19 Python
200行python代码实现贪吃蛇游戏
2020/04/24 Python
如何实现一个python函数装饰器(Decorator)
2020/10/12 Python
python opencv实现直线检测并测出倾斜角度(附源码+注释)
2020/12/31 Python
python 第三方库paramiko的常用方式
2021/02/20 Python
CSS3实现网站商品展示效果图
2020/01/18 HTML / CSS
伦敦一家领先的精品零售商:IRIS Fashion
2019/05/24 全球购物
成教自我鉴定
2013/10/27 职场文书
个人承诺书
2014/03/26 职场文书
2014年管理人员工作总结
2014/12/01 职场文书
医院志愿者活动总结
2015/05/06 职场文书
草房子读书笔记
2015/06/29 职场文书
老乡会致辞
2015/07/28 职场文书
2016年社区综治宣传月活动总结
2016/03/16 职场文书
《和时间赛跑》读后感3篇
2019/12/16 职场文书
Mysql 文件配置解析介绍
2022/05/06 MySQL