Vue3路由参数详解:query与params的区别与使用场景
创作时间:
作者:
@小白创作中心
Vue3路由参数详解:query与params的区别与使用场景
引用
CSDN
1.
https://blog.csdn.net/null18/article/details/136708893
在Vue3中,路由参数是实现页面间数据传递和状态管理的重要手段。本文将详细介绍query参数和params参数的使用方法、区别以及适用场景,帮助开发者更好地构建复杂的单页面应用。
路由中的参数
在 Vue 中,路由参数是指在访问不同页面时传递的信息。它们可以用来动态地构建页面内容,实现页面间的数据传递和状态管理。Vue 的路由系统提供了多种方式来处理路由参数,包括动态路由、查询参数和路由元信息等。
query参数
我们接着使用上节用到的相关代码,在路径匹配后面我们加了一个问号,在问号后面我们加了一个参数
<template>
<div class="plays">
<!--导航区-->
<ul>
<li v-for="play in newList" :key="play.id">
<RouterLink to="/plays/detail?a=1">{{play.title}}</RouterLink>
</li>
</ul>
<!--展示区-->
<div class="news-content">
<RouterView></RouterView>
</div>
</div>
</template>
在地址栏我们可以清楚的看到,但是这也仅仅是浅浅看一看
接下来我们打开Detail.vue文件,我们导入一个useRoute
通过useRoute可以方便地访问当前路由的路径、参数、查询参数等信息,而不需要依赖于this.$route。
接下来我们应该实例化一下函数,之后我们就可以在上面的模版中尽显表达了
<template>
<ul class="news-list">
<li>编号:{{ route.query.id }}</li>
<li>标题:{{ route.query.title }}</li>
<li>内容:{{ route.query.content }}</li>
</ul>
</template>
但是现在其实我们并不能匹配到id、title、content,可以匹配到的或许仅仅是a,然后显示出1,接下来我们要解决这个问题
<template>
<div class="plays">
<!--导航区-->
<ul>
<li v-for="play in newList" :key="play.id">
<RouterLink :to="`/plays/detail?id=${play.id}`">{{play.title}}</RouterLink>
</li>
</ul>
<!--展示区-->
<div class="news-content">
<RouterView></RouterView>
</div>
</div>
</template>
这样我们就可以点击哪个出现哪个对应的编号了
修改后的如下
<RouterLink :to="`/plays/detail?id=${play.id}&title=${play.title}&content=${play.content}`">{{play.title}}</RouterLink>
上面的是第一种写法
下面是第二种写法
<RouterLink
:to="{
name:'detail',
query:{
id:play.id,
title:play.title,
content:play.content
}
}"
>
{{play.title}}
</RouterLink>
params参数
还是需要useRoute的导入,接下来我们需要修改一下index.ts中的path
后面的问号表示可有可无
path:'Detail/:id/:title/:content?',
模版这里也要修改一下
<template>
<ul class="news-list">
<li>编号:{{ route.params.id }}</li>
<li>标题:{{ route.params.title }}</li>
<li>内容:{{ route.params.content }}</li>
</ul>
</template>
同样也有两种写法
<RouterLink
:to="{
name:'Detail',
params:{
id:play.id,
title:play.title,
content:play.content
}
}"
>
{{play.title}}
</RouterLink>
综上所述:
- 传递params参数时,若使用to的对象写法,必须使用name配置项,不能用path。
- 传递params参数时,需要提前在规则中占位。
区别和适用场景
- Params 参数 适用于标识资源、动态路由等需要作为路由一部分的信息,如 /user/:id;
- Query 参数 适用于配置项、筛选条件等不需要作为路由一部分的可选参数,如 /user?id=123。
总结
路由参数是 Vue 路由系统中非常重要的一部分,通过动态路由参数、查询参数和路由元信息,我们可以实现更灵活的页面导航和数据传递。熟练掌握这些技巧可以帮助我们更好地构建复杂的单页面应用。
热门推荐
采暖季来临,三种地暖类型你该如何选择?
电动自行车左转别犯错:交规要求与安全指南
冬季取暖别大意,安全知识要牢记
刑事案件与工伤伤情鉴定:如何准备关键材料
北京市隆福医院:中医情志护理温暖老人心
浦东、徐汇、黄浦:上海小学排名大揭秘
浦东新区小学排名揭秘:上海实验学校 vs 明珠小学
老人的胸怀:家庭和睦的守护力量
小柴胡颗粒孕期慎用,医生推荐这些替代方案
勾芡用什么淀粉?哪种最适合?
如何为奶酪通心粉、浓汤、肉汁等的制作面糊(Roux)
配料表里有这个添加剂,就成了“毒面包”?
玉米淀粉的营养价值与功效
白蜡金命五行缺失的影响与应对:从桃花到运势的全面解析
凝聚团结力量 共筑奥运梦想
体育赛事与社会团结:体育运动如何促进社会和谐和团队合作?
兴化李中水上森林:乘木筏穿行千亩水杉林
兴化三日游:油菜花海、文化古迹与水上森林
金黄芦苇荡里,大纵湖展现最美秋季
里尔VS尼斯:伤病阴影下的强强对话
法甲焦点战:里尔主场迎战尼斯,攻防对决谁能笑到最后?
里尔 vs 尼斯:法甲强强对话,谁能笑到最后?
如何理解团队运动
春节饮食攻略:四大守则+精选年菜,健康过新年
创意年货走红,文旅消费升温,春节市场展现新活力
年关将至,全国各地特色年货大盘点
春节必备食品饮品指南:9大品类详解
巫山当阳大峡谷:地质奇观与文化传说的完美融合
皓月公主:从奇猫国走出来的勇敢战士
从GLAD原则到业务融合:移动端数据可视化设计全攻略