1、判斷登錄:
在src目錄下新建文件wrappers/auth.ts 在src/access.ts中控制菜單權(quán)限
auth.ts文件代碼
// src/wrappers/auth.ts
import { getToken } from '@/utils/auth';
import { matchRoutes, Navigate, Outlet, useAppData, useLocation } from 'umi';
export default function Auth(props: any) {
//判斷是否有token
const isLogin = getToken();
//如果token存在就返回正常內(nèi)容
if (isLogin) {
return <Outlet />;
} else {
//如果不存在token就重定向到登錄頁
console.log('跳登錄');
return <Navigate to="/login" />;
}
}
access.ts文件代碼
// src/access.ts
export default function (initialState) {
return {
RolePage: authorizedMenus.includes('/role') //此處根據(jù)后端返回的權(quán)限列表authorizedMenus判斷是否含有RolePage
};
}
.umirc.ts文件內(nèi)配置路由 使用access 和wrappers
{
name: '角色管理',
access: 'RolePage',
path: '/role',
component: './role',
icon: 'CrownOutlined',
wrappers: ['@/wrappers/auth'],
},