全局钩子
需求:项目在浏览器中会出现登陆以后,还可以返回登录页的问题,这里需要做以下的处理,这里用到了router.beforeEach。
- 在main.js文件中
router.beforeEach((to, from, next) => {
if (sessionStorage.getItem("token")) {
//判断本地是否存在access_token
if (to.path === "/login") {
next({
path: "/"
});
} else {
next();
}
} else {
next(); // 直接返回到指定页面 或者页可以到 login中
}
});
举例:afterEach(跳转之后滚动条返回顶部)
router.afterEach((to, from) => {
// 跳转之后滚动条回到顶部
window.scrollTo(0,0);
});
单个路由独享钩子
export default [
{
path: '/',
name: 'login',
component: login,
beforeEnter: (to, from, next) => {
console.log('即将进入登录页面')
next()
}
}
]