废话不多说直接贴代码 src/app.tsx
import { request } from 'umi';
let extraRoutes;
export function patchRoutes({ routes }) {
extraRoutes.forEach(item => {
routes[0].routes.push(item)
})
}
const getRouteData = (routes) => {
routes.forEach(route => {
route.component = require(`@/pages/${route.component}/index`).default
if (route.children && route.children.length > 0) {
getRouteData(route.children)
}
})
return routes
}
export function render(oldRender) {
request("/api/routes")
.then((res) => {
extraRoutes = getRouteData(res.routes)
oldRender();
});
}
mock
"/api/routes": {
routes: [
{ path: '/Home/Demo1', component: 'Demo1', name: "页面一" },
{ path: '/Home/Demo2', component: 'Demo2', name: "页面二" },
{ path: '/Home/Demo3', component: 'Demo3', name: "页面三" },
],
},
简单说一下:最主要是require去注册componment,不然会报错找不到组件