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ãoanonymous
euse-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-origin
eunsafe-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),high
elow
.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
preload
têm o mesmo efeito que uma única chamada. Chamadas apreload
são consideradas equivalentes de acordo com as seguintes regras:- Duas chamadas são equivalentes se tiverem o mesmo
href
, exceto: - Se
as
for definido comoimage
, duas chamadas são equivalentes se tiverem o mesmohref
,imageSrcSet
eimageSizes
.
- Duas chamadas são equivalentes se tiverem o mesmo
- No navegador, você pode chamar
preload
em 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,
preload
só 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>
);
}