跳转到主文档

LoadableComponent

LoadableComponentloadablelazy 函数返回的对象类型。

LoadableComponent 类型

type LoadableComponent<Props> =
React.ComponentType<
Props & { fallback?: JSX.Element; }>
& {
preload(props?: Props): void;
load(props?: Props): Promise<React.ComponentType<Props>>;
}

props

类型:object

LoadableComponent 组件可接收任意 props 参数,这些参数会转发给 loadFn。

fallback

类型:JSX.Element

当组件尚未加载完成(即 loading 阶段)会显示 fallback 内容。

LoadableComponent.preload

import loadable from '@modern-js/runtime/loadable'

const OtherComponent = loadable(() => import('./OtherComponent'))
OtherComponent.preload()

preload 接收的参数会全部传给 loadFn

预加载脚本中函数始终不会返回一个 Promise 对象,如果你想等待组件加载完成,请使用 load 函数

LoadableComponent.load

import loadable from '@modern-js/runtime/loadable'

const OtherComponent = loadable(() => import('./OtherComponent'))
OtherComponent.load().then(() => {
console.log('Component is loaded!')
})

如果你无需等待组件加载完成,则使用 preload 即可。