《头部尾部在路由集成》
-----------------------------recored------------------------------------
umi头部尾部集成于路由 使用ReactNode
把头部和尾部单独提出来再放到layout布局里:
好处:可以不在每个页面添加<Head></Head>和<Footer></Footer>
代码更清晰;若是只是单独抽头部和尾部的组件每个页面还需要写。
例如集成于首页的路由中:
layout:
type HomeProps = {
children: ReactNode;
};
const Index: React.FC<HomeProps> = (props) => {
return (
<div className={Styles.layoutStyles}>
<HeaderMenu></HeaderMenu>
<div className={Styles.frontContent}>{props.children}</div>
<Footer></Footer>
</div>
);
};
umirc.ts:
routes: [
{
path: '/home',
layout: false,
component: '../layouts',
routes: [
{ path: '/home', redirect: '/home/index' },
{ path: '/home/index', component: './Home', name: '首页' },
],
},
],
antd-pro 也是这样的 有单独的layout可以使用,所以直接使用antd-pro那一套是可以直接用,但是这一套比较死,不太能改成项目需要的,或者很麻烦,还不如使用umi来写,antd是在umi的基础上再封装的一层,所以使用umi也能用antd的组件,有时候就比较灵活。