路由守卫
定义:简单来说,路由守卫就是路由跳转前、中、后过程中的一些钩子函数,这个函数能让你操作一些其他的事儿,这就是路由守卫。
全局路由的钩子函数包括:
beforeEach
在路由跳转前触发,参数包括to,from,next(参数会单独介绍)三个,这个钩子作用主要是用于登录验证
beforeResolve(2.5+)
这个钩子和beforeEach类似,也是路由跳转前触发,参数也是to,from,next三个
afterEach
是在路由跳转完成后触发,参数包括to,from,它发生在beforeEach和beforeResolve之后,beforeRouteEnter(组件内守卫)之前。
beforeEach前置守卫
{
path:'/dongman',
component:Dongman,
meta: {isAuto:true,title:'动漫频道'}//是否需要路由组件拦截
}
---------------------------------------
//前置路由守卫 在每个路由之前
//to 到哪去
//from 由哪来
//next 是否放行
router.beforeEach((to, from, next) => {
if(to.meta.isAuto){//判断是否是要去看电影
//判断是否是vip F12在application(应用)可以配置
if(localStorage.getItem('vip') === "true"){
next();//放行
}else{
alert("穷逼");
}
}else{
next();//放行
}
})
afterEach后置路由
//后置路由守卫 负责路由善后工作
router.afterEach((to, from) => {
//标题栏的改变
document.title = to.meta.title;
})
redirect 默认加载并显示该组件
{
path:'/dianying',
component:Dianying,
meta: {isAuto:true,title:'电影频道'},
children:[
{
path:'jingsong',
component:JingSong
},
{
path:'xiju',
component:XiJu
}
],redirect:'/dianying/jingsong'//加上默认显示的子组件 重定向
},