Lazy Carregue e Pré-busca Componentes
Este chapter introduces como para usar createLazyComponent para carregar remote React componentes on demand em uma aplicação host.
createLazyComponent é uma higher-level carregamento API for React componente scenarios. Compared com diretamente carregamento um módulo e wiring up React.lazy, Suspense, e erro boundaries yourself, it builds those pieces no API e additionally fornece:
- Declarative carregamento e fallback: no precisa manually wrap
React.Suspensee erro boundaries - Dados prefetching: use
prefetchpara começa dependência requests antes o componente carrega, avoiding request waterfalls onde dados é requested apenas depois o componente é ready - SSR control: precisely control whether remote componentes render no servidor, helping avoid CSS flickering issues
Instalação
Básico Uso
Step 1: Register lazyLoadComponentPlugin
Register o lazyLoadComponentPlugin plugin em runtime para habilite createLazyComponent e pré-busca APIs.
Step 2: Call createLazyComponent
Depois registering o lazyLoadComponentPlugin plugin, você pode crie lazy-carregado componentes usando o instance.createLazyComponent método.
createLazyComponent API Reference
Função Signature
createLazyComponent
Esta API requires registering the lazyLoadComponentPlugin plugin primeiro antes ele pode ser chamada.
Type declaration
In addition para carregamento componentes, este função também suporta o seguintes capabilities:
- In SSR mode, it vai inject o corresponding producer's style tags/script recursos, que pode help avoid CSS flickering issues caused by streaming renderização e accelerate PID (First Paint Interactive Time).
- Se o producer has uma dados fetching função, it vai automatically call este função e inject o dados.
loader
- Type:
() => Promise<T> - Obrigatório: Yes
- Padrão:
undefined
Função para carregar remote componentes, typically ()=>loadRemote(id) ou ()=>import(id).
carregamento
- Tipo:
React.ReactNode - Obrigatório: Yes
- Padrão:
undefined
Sets o módulo estado de carregamento.
delayLoading
- Tipo:
number - Obrigatório: No
- Padrão:
undefined
Sets o delay time for displaying estado de carregamento em milliseconds. Se o carregamento time é menos than este time, o estado de carregamento vai não ser displayed.
fallback
- Tipo:
(({ error }: { error: ErrorInfo}) => React.ReactElement) - Obrigatório: Yes
- Padrão:
undefined
O erro componente rendered quando componente carregamento ou renderização fails.
exporte
- Tipo:
string - Obrigatório: No
- Padrão:
'default'
Se o remote componente é uma chamado exporte, você pode specify o componente name para exporte por meio de este parameter. Por padrão, it carrega o padrão exporte.
dataFetchParams
- Tipo:
DataFetchParams - Obrigatório: No
- Padrão:
undefined
Se o remote componente has uma dados fetching função, este vai ser passed para o dados fetching função quando definir.
noSSR
- Tipo:
boolean - Obrigatório: No
- Padrão:
false
Quando definir para true, este componente vai não render em SSR scenarios.
injectScript
- Tipo:
boolean - Obrigatório: No
- Padrão:
false
In SSR environment, se definir para true, o criado componente vai inject o corresponding script recursos.
Por exemplo, se remote/button has __federation_button.js, then no HTML retornado by SSR, o corresponding script vai ser injected antes o componente para accelerate interaction speed.
injectLink
- Tipo:
boolean - Obrigatório: No
- Padrão:
true
In SSR environment, se definir para true, o criado componente vai inject o corresponding style recurso links.
Por exemplo, se remote/button has __federation_button.css, then no HTML retornado by SSR, o corresponding link vai ser injected antes o componente para avoid page flickering issues.
pré-busca
Esta API requires registering the lazyLoadComponentPlugin plugin primeiro antes ele pode ser chamada.
Type declaration
Preload componente recurso arquivos e o componente's dados loader.
id
- Tipo:
string - Obrigatório: Yes
- Padrão:
undefined
O id do componente para preload.
preloadComponentResource
- Tipo:
boolean - Obrigatório: No
- Padrão:
false
Whether para preload o componente's recurso arquivos.
dataFetchParams
- Tipo:
DataFetchParams - Obrigatório: No
- Padrão:
undefined
Se o remote componente has uma dados fetching função, este vai ser passed para o dados fetching função quando definir.