一、解释

把数据从一个路由页面传递到另外一个页面的技术

这里列举了 params 和 query 的传参方式

二、案例

案例展示 手机列表页 传参到 手机详情页面(传递的是id)

① params 

1-1、在路由规则中设置接收参数(谁接收数据,就在谁的路由规则中设置)--这里详情页接收数据

 {path: '/Phone',name: 'Phone', component: Phone },{//   /:某某path: '/PhoneDetails/:phoneId', //接收数据的规则上设置接收参数name: 'PhoneDetails', component: PhoneDetails },

 1-2、发送数据 (父给子发)--通过事件触发

编程式:this.$router.push({name:"你要跳转的路由规则的name",params:{你配置的接收参数:"数据"}})

标签:<router-link v-bind:to="{name:"你要跳转的路由规则的name",params:{你配置的接收参数:"数据"}}"></router-link>

<script>
export default {methods: {//点击事件goLink(id) {this.$router.push({name:"PhoneDetails",params:{phoneId:id}})//这种 ``也可以// this.$router.push({//   path: `/PhoneDetails/${id}`,// })},},
}
</script>

1-3、接收数据   this.$route.params.xxx  (route 没有r) (详情也就是儿子接收)

<template><div><h3>我是详情页</h3><h3>ID:{{this.$route.params.phoneId}}</h3></div>
</template>

② query

2-1、发送数据 不需要路由上配置了 (两种格式)

this.$router.push({name:"你要跳转的路由规则的name",query:{接收参数:"数据"}})

this.$router.push({path:"你要跳转的路由的路径",query:{接收参数:"数据"}})

//query传参
// this.$router.push({name:"PhoneDetails",query:{phoneId:id}})

2-2、接收数据   ---- this.$route.query.xxx

<h2>id:{{this.$route.query.phoneId}}</h2> 

三、案例效果 -----注意看url路径的变化

四、两者的区别

               params                                         query
用法上       params只能用name         可以使用 path 也可以使用 name 作为跳转路径
接收上     this.$route.params.xxx                     this.$route.query.xxx
url 展示上 params url只有val 不显示key 相对来说安全一些      query 是 key=val ( query显示key相对来说不安全 )
效果上

五、$router与$route

$router : 他是vueRouter的全局对象,由于我们在vue对象里把vueRouter对象植入到根属性里,所以,在组件内部是可以使用$router拿到该对象的 (它里面包含了对路由全局操作的属性和方法)

$route: 就是一个路由对象 每一个路由都有一个route对象 也就是说他是类似于局部页面路由的一个对象,他只能处理当前路由页面的操作 ( 表示匹配到的当前路由对象 )

六、代码

phone.vue

<template><div class="phone"><divclass="phone-item"v-for="(v, i) in arr":key="i"@click="goLink(v.id)"><div class="cont-tit">{{ v.tit }}</div><div><img :src="v.img" /></div></div></div>
</template><script>
export default {data() {return {arr: [{id: '001',tit: '手机热销',img: 'https://shopstatic.vivo.com.cn/vivoshop/commodity/36/10007336_1650358109769_750x750.png.webp',},{id: '002',tit: '折扣手机',img: 'https://shopstatic.vivo.com.cn/vivoshop/commodity/36/10007336_1650358095399_750x750.png.webp',},{id: '003',tit: '热销手机',img: 'https://shopstatic.vivo.com.cn/vivoshop/commodity/11/10007411_1652682629904_750x750.png.webp',},{id: '004',tit: '活动手机',img: 'https://shopstatic.vivo.com.cn/vivoshop/commodity/75/10007475_1653651557950_750x750.png.webp',},{id: '005',tit: '二手手机',img: 'https://shopstatic.vivo.com.cn/vivoshop/commodity/09/10007209_1647845438443_750x750.png.webp',},],}},methods: {goLink(id) {this.$router.push({name:"PhoneDetails",params:{phoneId:id}})//query传参// this.$router.push({name:"PhoneDetails",query:{phoneId:id}})// this.$router.push({//   path: `/PhoneDetails/${id}`,// })},},
}
</script><style scoped >
.phone-item {padding: 20px;
}
.phone-item {background-color: #ccc;margin-top: 15px;
}
.cont-tit {font-size: 14px;color: #3c3c3c;margin-bottom: 10px;
}
img {width: 60px;height: 60px;
}
</style>

phoneDetails.vue

<template><div><h3>我是详情页</h3><h1 @click="goBack()">&lt;</h1><h3>ID:{{this.$route.params.phoneId}}</h3><!-- <h2>id:{{this.$route.query.phoneId}}</h2> --></div>
</template><script>
export default {methods:{goBack(){this.$router.go(-1)}}
}
</script>

Vue 中路由传参(动态路由匹配)相关推荐

  1. vue——路由之路由跳转、路由传参、路由嵌套、路由模式

    相关认识: 后端路由:对于前端的网络请求,不同的pathname,去执行后端的不同业务 前端路由:不同的网址对应各自的页面 vue的前端路由:SPA应用要做出路由效果,就得判断当前网址,然后切换组件 ...

  2. 几个经常用到的angular路由Router、ActivatedRoute 知识点:嵌套路由、路由跳转、路由传参、路由参数获取

    深度玩家可移步Angular - 常见路由任务 1.嵌套路由 const routes: Routes = [{path: 'first',component: FirstComponent,//同步 ...

  3. id vue2路由传参_vue 路由跳转传参

    正常跳转 this.$router.push('/index'); 1带参 toOrderDetail() { let orderUuid = this.order.uuid; this.$route ...

  4. 前端Vue中query传参

     传参 接参

  5. vuejs中路由的传参以及路由props配置

    虽互不曾谋面,但希望能和您成为笔尖下的朋友 以读书,技术,生活为主,偶尔撒点鸡汤 不作,不敷衍,意在真诚吐露,用心分享 点击左上方,可关注本刊 标星公众号(ID:itclanCoder) 如果不知道如 ...

  6. Vue路由传参的几种方式

    前言:顾名思义,vue路由传参是指嵌套路由时父路由向子路由传递参数,否则操作无效.传参方式可以划分为params传参和query传参,params传参又可以分为url中显示参数和不显示参数两种方式.具 ...

  7. Vue路由传参(params 与 query)

    理解: 路由传参分为 params 传参与 query 传参,params 传参类似于网络请求中的 post 请求,params 传过去的参数不会显示在地址栏中(但是不能刷新).params 只能配合 ...

  8. vue2路由手动创建二级路由路由传参路由守卫打包上线

    路由手动配置: #在@vue/cli创建的项目中,路由用法如下. 1.安装路由npm install vue-router@32:定义路由所需的组件(.vue文件)要实现页面about 和home两个 ...

  9. vue2_路由03_路由传参

    路由传参 一. 路由的query参数 1. 路由配置 2. 跳转路由 第一种写法 第二种写法 3. 参数接受$route.query 二. 命名路由 1. 路由配置 2. 应用 3. 优缺点 4. n ...

  10. vue 如何将参数放到连接上_通过Vue路由传参的两种方式及Vue组件中接收参数的方式...

    1. Vue传参方式 1.1 通过动态路由传参 我们经常需要把某种模式匹配到的所有路由,全都映射到同个组件.例如,我们有一个 User 组件,对于所有 ID 各不相同的用户,都要使用这个组件来渲染.那 ...

最新文章

  1. 根据PromiseA+规范实现Promise
  2. 的函数原型_相信我,跟着这个文章学习JS原型,你一定能看得懂
  3. 使用MDT2012部署WindowsLinux操作系统(8)
  4. 如何快速学好Shell脚本?
  5. 13个JavaScript单行式代码
  6. RocketMQ-手把手教你搭建集群
  7. Spark Streaming(四)kafka搭建(单节点,单broker)
  8. 什么叫做罗列式_陈列,罗列是什么意思?
  9. 日期/时间格式/解析,Java 8样式
  10. Activiti中的高级脚本:自定义配置注入
  11. 4万次下载,我的这本电子书连续数月蝉联阿里云下载榜冠军!!!
  12. directx修复工具win7_win7提示explorer.exe应用程序错误的解决方法
  13. 为什么找不到使用rem的网站
  14. 软件名称后缀含义?(如RC、RTL)
  15. 「python爬虫之路day9」:实战之使用正则表达式爬取抓狂网,古诗文网信息
  16. 谷歌学术统计的学者 ‘h 指数’ 是什么意思
  17. 谷歌io大会 android p,十年最大革新 Android P现身谷歌I/O大会
  18. 中泰XTP极速交易系统缔造者:为量化而生
  19. 【JZOJ 4598】 准备食物
  20. PHP 生成条形码每页44个

热门文章

  1. 如何用手机APP实现PLC远程监控
  2. 天地孤影任我行(东邪西毒电影原声曲)铃声 天地孤影任我行(...
  3. Git 进阶 —— 时光穿梭机
  4. Docker基础30--6.4 Docker三剑客之Swarm
  5. java相关资料下载
  6. mysql 开源聊天系统_轻量级的开源企业聊天软件 喧喧聊天(界面很不错)
  7. jmeter线程组之jp@gc - Ultimate Thread Group
  8. Jmeter线程组之 jp@gc - Stepping Thread Group (deprecated)
  9. 仅需三步完成微信小程序注册
  10. 常见离散型随机变量比较