跳转到主文档

LoadableLibrary

lazy.libloadable.lib 函数返回 LoadableLibrary 对象

LoadableLibrary 类型

type LoadableLibrary = React.ComponentType<{
fallback?: JSX.Element;
children?: (module: Module) => React.ReactNode;
ref?: React.Ref<Module>;
}>

fallback

类型:JSX.Element

组件 loading 阶段显示 fallback 内容。

children

库加载完成只有的回调。

import loadable from '@modern-js/runtime/loadable'
const Moment = loadable.lib(() => import('moment'))
function FromNow({ date }) {
return (
<div>
<Moment fallback={date.toLocaleDateString()}>
{({ default: moment }) => moment(date).fromNow()}
</Moment>
</div>
)
}

ref

类型:React.Ref<Module>

可以通过 ref 拿到所加载库的实例。

import loadable from '@modern-js/runtime/loadable'
const Moment = loadable.lib(() => import('moment'))
class MyComponent {
moment = React.createRef()
handleClick = () => {
if (this.moment.current) {
return alert(this.moment.current.default.format('HH:mm'))
}
}
render() {
return (
<div>
<button onClick={this.handleClick}>What time is it?</button>
<Moment ref={this.moment} />
</div>
)
}
}