preload
preload permite que você busque de forma antecipada um recurso, como uma folha de estilos, uma fonte ou um script externo que você espera usar.
preload("https://example.com/font.woff2", {as: "font"});Referência
preload(href, options)
Para pré-carregar um recurso, chame a função preload de react-dom.
import { preload } from 'react-dom';
function AppRoot() {
preload("https://example.com/font.woff2", {as: "font"});
// ...
}A função preload fornece ao navegador uma dica de que ele deve começar a baixar o recurso dado, o que pode economizar tempo.
Parâmetros
href: uma string. A URL do recurso que você deseja baixar.options: um objeto. Contém as seguintes propriedades:as: uma string obrigatória. O tipo de recurso. Seus valores possíveis sãoaudio,document,embed,fetch,font,image,object,script,style,track,video,worker.crossOrigin: uma string. A política de CORS a ser usada. Seus valores possíveis sãoanonymouseuse-credentials. É obrigatória quandoasé definido como"fetch".referrerPolicy: uma string. O cabeçalho Referrer a ser enviado ao buscar. Seus valores possíveis sãono-referrer-when-downgrade(o padrão),no-referrer,origin,origin-when-cross-origineunsafe-url.integrity: uma string. Um hash criptográfico do recurso, para verificar sua autenticidade.type: uma string. O tipo MIME do recurso.nonce: uma string. Um nonce criptográfico para permitir o recurso ao usar uma Política de Segurança de Conteúdo rigorosa.fetchPriority: uma string. Sugere uma prioridade relativa para buscar o recurso. Os valores possíveis sãoauto(o padrão),highelow.imageSrcSet: uma string. Para ser usado apenas comas: "image". Especifica o conjunto de fontes da imagem.imageSizes: uma string. Para ser usado apenas comas: "image". Especifica os tamanhos da imagem.
Retornos
preload não retorna nada.
Ressalvas
- Múltiplas chamadas equivalentes a
preloadtêm o mesmo efeito que uma única chamada. Chamadas apreloadsão consideradas equivalentes de acordo com as seguintes regras:- Duas chamadas são equivalentes se tiverem o mesmo
href, exceto: - Se
asfor definido comoimage, duas chamadas são equivalentes se tiverem o mesmohref,imageSrcSeteimageSizes.
- Duas chamadas são equivalentes se tiverem o mesmo
- No navegador, você pode chamar
preloadem qualquer situação: enquanto renderiza um componente, em um Effect, em um manipulador de eventos etc. - Na renderização do lado do servidor ou ao renderizar Componentes do Servidor,
preloadsó tem efeito se você chamá-lo enquanto renderiza um componente ou em um contexto assíncrono originado da renderização de um componente. Quaisquer outras chamadas serão ignoradas.
Uso
Pré-carregando ao renderizar
Chame preload ao renderizar um componente se você souber que ele ou seus filhos usarão um recurso específico.
Example 1 of 4: Pré-carregando um script externo
import { preload } from 'react-dom';
function AppRoot() {
preload("https://example.com/script.js", {as: "script"});
return ...;
}Se você quiser que o navegador comece a executar o script imediatamente (em vez de apenas baixá-lo), use preinit em vez disso. Se você quiser carregar um módulo ESM, use preloadModule.
Pré-carregando em um manipulador de eventos
Chame preload em um manipulador de eventos antes de transitar para uma página ou estado onde recursos externos serão necessários. Isso inicia o processo mais cedo do que se você o chamasse durante a renderização da nova página ou estado.
import { preload } from 'react-dom';
function CallToAction() {
const onClick = () => {
preload("https://example.com/wizardStyles.css", {as: "style"});
startWizard();
}
return (
<button onClick={onClick}>Iniciar Assistente</button>
);
}