通过插件定制运行时能力

插件运行时能力通过 src/module.ts 定义,结构如下

  1. export default ({ appConfig, addDOMRender, setRenderRouter, modifyRoutes }) => {
  2. const { loglevel } = appConfig;
  3. }

API

appConfig

对应 src/app.ts 用户自定义的 appConfig

addProvider

为应用包裹 Provider:

  1. export default ({ addProvider }) => {
  2. const StoreProvider = ({children}) => {
  3. return <Provider store={store}>{children}</Provider>;
  4. }
  5. addProvider(StoreProvider);
  6. };

wrapperRouteComponent

为所有页面级组件做一层包裹:

  1. // 默认能力:在页面组件上挂载 pageConfig.title 的属性,即可自动设置页面 title
  2. import { useEffect } from 'react';
  3. export default ({ wrapperRouteComponent }) => {
  4. wrapperRouteComponent((PageComponent) => {
  5. const { title } = PageComponent.pageConfig || {};
  6. if (!title) {
  7. return PageComponent;
  8. }
  9. const TitleWrapperedComponent = () => {
  10. useEffect(() => {
  11. document.title = title;
  12. }, []);
  13. return <PageComponent />
  14. }
  15. return TitleWrapperedComponent;
  16. });
  17. };