1.全局路由钩子beforeEach,afterEach的用法
每次切换路由都会触发全局的钩子函数,写在router.js文件中
router.beforeEach() 进入之前触发
router.afterEach() 进入之后触发
const router = new Router({
routes:[{
path: '/dashboard',
name: 'dashboard',
component: () => import( /* webpackChunkName: "dashboard" */ '../components/page/Dashboard.vue'),
meta: {
title: '首页',
requireAuth: true, //需要登录验证:否
keepAlive: false // 需要缓存
}
}]
})
/*路由前置哨兵*/
router.beforeEach((to, from, next) => {
//判断是否登陆 注意this.$router.replace
if(to.matched.some(res => res.meta.requireAuth)){ //判断是不是需要登录验证
console.log("切换页面,出去home");
}
next()
});
beforeEach()可以用来阻拦一个没有权限的用户进入某个页面
2.单个路由里面的钩子: beforeEnter、 beforeLeave
写在路由配置中,只有访问到这个路径,才能触发钩子函数
{
path: '/user',
name: 'user',
component: () => import( /* webpackChunkName: "userAdd" */ '../components/page/userManage/userAdd.vue'),
beforeEnter:(to,from,next)=>{
console.log('到哪去to',to);
console.log('从哪来from',from);
next()
},
meta:{
title:"个人中心"
}
},
3