说明
安装:
npm i --save xy-share-component
引用方式:
import { useShareComponent } from "xy-share-component";
注意. 1.0.2 版本后使用systemjs进行import组件,所以需要在index.html文件里进行依赖添加
前置依赖
<script>
function _xyShareComponentLoader(target) {
return System.import(target);
}
</script>
<script id="remote-components-map" type="systemjs-importmap">
{
"imports": {
"button": "http://localhost:6699/button/index.js",
"checkbox": "http://localhost:6699/checkbox/index.js",
"React": "https://unpkg.com/react@16/umd/react.production.min.js",
"ReactDOM": "https://unpkg.com/react-dom@16/umd/react-dom.production.min.js",
"react": "https://unpkg.com/react@16/umd/react.production.min.js",
"react-dom": "https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"
}
}
</script>
<script crossorigin src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
<script src='https://unpkg.com/systemjs@6.3.1/dist/system.js'></script>
<script src='https://unpkg.com/systemjs@6.3.1/dist/extras/amd.js'></script>
<script src='https://unpkg.com/systemjs@6.3.1/dist/extras/named-exports.js'></script>
使用方式:
import { useShareComponent } from 'xy-share-component';
const Button = useShareComponent('button');
export default () => {
return (
<div>
<Button type="primary">Test</Button>
<Button type="primary">Test2</Button>
<Button type="primary">Test3</Button>
<Button type="primary">Test13223</Button>
</div>
);
};
远程组件props类型提示:
import { useShareComponent } from 'xy-share-component';
interface ButtonProps {
type: 'primary';
}
const Button = useShareComponent<ButtonProps>('button');
export default () => {
return (
<div>
<Button type="primary">Test</Button>
<Button type="primary">Test2</Button>
<Button type="primary">Test3</Button>
<Button type="primary">Test13223</Button>
</div>
);
};
fallback
属性设置loading
import { useShareComponent } from 'xy-share-component';
const Button = useShareComponent('button', '加载中...');
const Button = useShareComponent('button', <div>加载中</div>);
引用远程组件静态属性:useStatic
import { useShareComponent } from 'xy-share-component';
const Group = useShareComponent('button', '加载中...', 'Group');
useShareComponent
Api如下
function useShareComponent<T extends Record<string, any>>(
url: string,
fallback: React.ReactNode = null,
usestatic = '',
);