LuoSong
LuoSong
Published on 2023-09-22 / 71 Visits
0
0

React学习记一

React学习记一

自定义页面

背景:公司需要一个嵌入其他业务平台的页面,平台嵌入选择iframe标签,套件使用React + Antd Pro + Antd + Umi3开发。原本计划在另一个已有的平台上搭建,为了不影响原有平台的代码并且降低平台代码之间的耦合性,使用独立的平台承载。

实现过程

pro create projectName - umi3 - sample
cd projectName
npm install
npm run start

接下来清除layout和登录页projectName/src/app.tsx

import type { RunTimeLayoutConfig } from 'umi';
import { message } from 'antd';

// 页面自定义,所有加载本项目的都会经过这个页面,从上按下执行,比如我判断是否携带token
if (window.location.href.indexOf('token') < 0) {
  message.error('对不起,你无权访问该页面!');
}

export const layout: RunTimeLayoutConfig = ({ initialState, setInitialState }) => {
  return {
    pure: true, // 关闭框架的layout
    childrenRender: (children, props) => {
      // if (initialState?.loading) return <PageLoading />;
      return (
        <>
          {children}
        </>
      );
    },
    ...initialState?.settings,
  };
};

自定义loading页面

适用于Umi3开发的平台,配置页projectName/config.ts

dynamicImport: {
  loading: '@ant-design/pro-layout/es/PageLoading', // 可以配置自己的加载页面,在所有资源加载时会展示该加载页
}

Comment