5.路由的query参数
1.传递参数
<li v-for="m in messageList" :key="m.id">
<!-- 跳转路由并携带query参数 to的字符串写法 -->
<!-- <router-link :to="`/home/message/detail?id=${m.id}&title=${m.title}`">{{m.title}}</router-link> -->
<!-- 跳转路由并携带query参数 to的对象写法 -->
<router-link :to="{
//你要去到哪个组件
path:'/home/message/detail' ,
query:{
id:m.id,
title:m.title
}
}">
{{m.title}}
</router-link>
</li>
2.接收参数
$route.query.id
$route.query.title
6.给路由命名
当多级路由时给上name名可以简化跳转,一级路由给不给name没有多大影响
routes:[
{
//给路由命名 跳转时直接用name:命名 不用path
name:'nameabout',
path:'/about',
component:About
},
{
path:'/home',
component:Home,
// 二级路由
children:[
{
//这里不用加斜
path:'news',
component:News,
},
{
//这里不用加斜
path:'message',
component:Message,
children:[
{
//多级路由给name 可以简化跳转
name:'namedetail',
path:'detail',
component:Detail
}
]
}
]
}
]
2.简化跳转
<router-link :to="{
//你要去到哪个组件
//直接使用name 不用path路径
name:'namedetail' ,
query:{
id:m.id,
title:m.title
}
}">
{{m.title}}
</router-link>
6.路由的params参数
1.配置路由,声明接收params参数
routes:[
{
name:'nameabout',
path:'/about',
component:About
},
{
path:'/home',
component:Home,
// 二级路由
children:[
{
//这里不用加斜
path:'news',
component:News,
},
{
//这里不用加斜
path:'message',
component:Message,
children:[
{
name:'namedetail',
path:'detail/:id/:title', //使用占位符声明接收params参数
component:Detail
}
]
}
]
}
]
2.传递参数
<!-- 跳转路由并携带params参数 to的字符串写法 -->
<router-link :to="`/home/message/detail/${m.id}/${m.title}`">{{m.title}}</router-link>
<!-- 跳转路由并携带params参数 to的对象写法 -->
<router-link :to="{
//你要去到哪个组件
name:'namedetail' ,
params:{
id:m.id,
title:m.title
}
}">
{{m.title}}
</router-link>
特别注意:路由携带params参数时,若使用to的对象写法,则不能使用path配置项,必须使用name配置!
3.接收参数
$route.params.id
$route.params.title
7.路由的props配置
作用:让路由组件更方便的收到参数
{
name:'namedetail',
path:'detail/:id/:title', //使用占位符声明接收params参数
component:Detail,
// props的第一种写法 ,该对象中的所有key-value都会以props的形式传给Detail组件
props:{
a:1,
b:'helloworld'
}
// props的第二种写法:值为布尔值 Boolen 若布尔值为真,就会把该路由组件收到的所有params参数,以props的形式传给Detail组件
props:true
// props的第三种写法:值为函数
props($route){
return {
id:$route.query.id,
title:$route.query.title
}
}
}
6.缓存路由组件
1.作用:让不展示的路由保持挂载,不被销毁
2.具体编码:
<keep-alive include="News">
<router-view></router-view>
</keep-alive>
7.两个新的生命周期钩子
1.作用:路由组件所独有的两个钩子,用于捕获路由组件的激活状态
2.具体名字:
1.activated 路由组件激活时触发
2.deactivated 路由组件失活时触发
7.路由守卫
全局前置路由守卫
// 前置路由守卫
router.beforeEach((to,from,next)=>{
// console.log(to)
// console.log(from)
next()
if(to.meta.isAuth){
if(localStorage.getItem('school')=== 'aiguigu'){
next()
}else{
alert("请登录")
}
}
})
全局后置路由守卫
// 后置路由守卫
router.afterEach((to,from) =>{
console.log(to,from)
})
独享路由守卫
{
//这里不用加斜
name:'xinwen',
path:'news',
component:News,
meta:{isAuth:true},
// 独享路由守卫
beforeEnter:(to,from,next)=>{
if(to.meta.isAuth){
if(localStorage.getItem('school')=== 'aiguigu'){
next()
}else{
alert("请登录")
}
}
}
},
# 最后
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**
**因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/093e04625121be30a19ac8cb2cf44fba.jpeg)
![](https://img-blog.csdnimg.cn/img_convert/779ead419cd688c799aee2f7d7bee883.png)
![](https://img-blog.csdnimg.cn/img_convert/dc1951b96f61d71bc169a570a38de2e3.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**
[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618191877)
**由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**
**因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
[外链图片转存中...(img-w3HnuWT2-1715659023875)]
[外链图片转存中...(img-ZgSdKCMY-1715659023876)]
[外链图片转存中...(img-HcrshYki-1715659023876)]
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**
[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618191877)
**由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**