vue免登录的路由拦截
const router = new Router({
routes: [
{
path: '/',
name: 'Home',
component: Home,
meta: {
// 头部标识显示
title: '首页',
noNeedLogin: true, // 不需要登录的页面
},
},
{
path: '/login',
name: 'login',
component: Login,
meta: {
// 头部标识显示
title: '登录',
noNeedLogin: true, // 不需要登录的页面
},
]
)};
// 路由拦截
router.beforeEach((to, from, next) => {
if (!to.meta.noNeedLogin) {
if (window.localStorage.getItem('isLogin')) {
next();
} else {
next({ path: '/login' });
}
} else {
next();
}
});
在设置路由的时候用一个变量控制是否需要登录,不需要登录就调用next(),需要登录则先判断是否有登录的缓存存在,不存在调往登录页面。