Vue 中路由传参(动态路由匹配)
一、解释
把数据从一个路由页面传递到另外一个页面的技术
这里列举了 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()"><</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 中路由传参(动态路由匹配)相关推荐
- vue——路由之路由跳转、路由传参、路由嵌套、路由模式
相关认识: 后端路由:对于前端的网络请求,不同的pathname,去执行后端的不同业务 前端路由:不同的网址对应各自的页面 vue的前端路由:SPA应用要做出路由效果,就得判断当前网址,然后切换组件 ...
- 几个经常用到的angular路由Router、ActivatedRoute 知识点:嵌套路由、路由跳转、路由传参、路由参数获取
深度玩家可移步Angular - 常见路由任务 1.嵌套路由 const routes: Routes = [{path: 'first',component: FirstComponent,//同步 ...
- id vue2路由传参_vue 路由跳转传参
正常跳转 this.$router.push('/index'); 1带参 toOrderDetail() { let orderUuid = this.order.uuid; this.$route ...
- 前端Vue中query传参
传参 接参
- vuejs中路由的传参以及路由props配置
虽互不曾谋面,但希望能和您成为笔尖下的朋友 以读书,技术,生活为主,偶尔撒点鸡汤 不作,不敷衍,意在真诚吐露,用心分享 点击左上方,可关注本刊 标星公众号(ID:itclanCoder) 如果不知道如 ...
- Vue路由传参的几种方式
前言:顾名思义,vue路由传参是指嵌套路由时父路由向子路由传递参数,否则操作无效.传参方式可以划分为params传参和query传参,params传参又可以分为url中显示参数和不显示参数两种方式.具 ...
- Vue路由传参(params 与 query)
理解: 路由传参分为 params 传参与 query 传参,params 传参类似于网络请求中的 post 请求,params 传过去的参数不会显示在地址栏中(但是不能刷新).params 只能配合 ...
- vue2路由手动创建二级路由路由传参路由守卫打包上线
路由手动配置: #在@vue/cli创建的项目中,路由用法如下. 1.安装路由npm install vue-router@32:定义路由所需的组件(.vue文件)要实现页面about 和home两个 ...
- vue2_路由03_路由传参
路由传参 一. 路由的query参数 1. 路由配置 2. 跳转路由 第一种写法 第二种写法 3. 参数接受$route.query 二. 命名路由 1. 路由配置 2. 应用 3. 优缺点 4. n ...
- vue 如何将参数放到连接上_通过Vue路由传参的两种方式及Vue组件中接收参数的方式...
1. Vue传参方式 1.1 通过动态路由传参 我们经常需要把某种模式匹配到的所有路由,全都映射到同个组件.例如,我们有一个 User 组件,对于所有 ID 各不相同的用户,都要使用这个组件来渲染.那 ...
最新文章
- 根据PromiseA+规范实现Promise
- 的函数原型_相信我,跟着这个文章学习JS原型,你一定能看得懂
- 使用MDT2012部署WindowsLinux操作系统(8)
- 如何快速学好Shell脚本?
- 13个JavaScript单行式代码
- RocketMQ-手把手教你搭建集群
- Spark Streaming(四)kafka搭建(单节点,单broker)
- 什么叫做罗列式_陈列,罗列是什么意思?
- 日期/时间格式/解析,Java 8样式
- Activiti中的高级脚本:自定义配置注入
- 4万次下载,我的这本电子书连续数月蝉联阿里云下载榜冠军!!!
- directx修复工具win7_win7提示explorer.exe应用程序错误的解决方法
- 为什么找不到使用rem的网站
- 软件名称后缀含义?(如RC、RTL)
- 「python爬虫之路day9」:实战之使用正则表达式爬取抓狂网,古诗文网信息
- 谷歌学术统计的学者 ‘h 指数’ 是什么意思
- 谷歌io大会 android p,十年最大革新 Android P现身谷歌I/O大会
- 中泰XTP极速交易系统缔造者:为量化而生
- 【JZOJ 4598】 准备食物
- PHP 生成条形码每页44个
热门文章
- 如何用手机APP实现PLC远程监控
- 天地孤影任我行(东邪西毒电影原声曲)铃声 天地孤影任我行(...
- Git 进阶 —— 时光穿梭机
- Docker基础30--6.4 Docker三剑客之Swarm
- java相关资料下载
- mysql 开源聊天系统_轻量级的开源企业聊天软件 喧喧聊天(界面很不错)
- jmeter线程组之jp@gc - Ultimate Thread Group
- Jmeter线程组之 jp@gc - Stepping Thread Group (deprecated)
- 仅需三步完成微信小程序注册
- 常见离散型随机变量比较