preload
preload
permite que você busque antecipadamente um recurso como uma stylesheet, fonte, ou script externo que você espera usar.
preload("https://example.com/font.woff2", {as: "font"});
Referência
preload(href, options)
Para fazer o pré-carregamento (preload) de 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 fornecido, o que pode economizar tempo.
Parâmetros
href
: uma string. A URL do recurso que você deseja baixar.options
: um objeto. Ele 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 CORS a ser usada. Seus valores possíveis sãoanonymous
euse-credentials
. É obrigatório quandoas
é definido como"fetch"
.referrerPolicy
: uma string. O cabeçalho Referrer a ser enviado durante a busca. 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 Content Security Policy estrita.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 uso somente comas: "image"
. Especifica o conjunto de origem da imagem.imageSizes
: uma string. Para uso somente comas: "image"
. Especifica os tamanhos da imagem.
Retorna
preload
não retorna nada.
Ressalvas
- Múltiplas chamadas equivalentes para
preload
têm o mesmo efeito que uma única chamada. As chamadas parapreload
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: ao renderizar um componente, em um Effect, em um manipulador de eventos, e assim por diante. - Na renderização do lado do servidor ou ao renderizar componentes do servidor,
preload
só tem efeito se você o chamar ao renderizar um componente ou em um contexto assíncrono originado da renderização de um componente. Quaisquer outras chamadas serão ignoradas.
Uso
Preloading ao renderizar
Chame preload
ao renderizar um componente se souber que ele ou seus filhos usarão um recurso específico.
Example 1 of 4: Preloading um script externo
import { preload } from 'react-dom';
function AppRoot() {
preload("https://example.com/script.js", {as: "script"});
return ...;
}
Se você deseja que o navegador comece a executar o script imediatamente (em vez de apenas baixá-lo), use preinit
em vez disso. Se você deseja carregar um módulo ESM, use preloadModule
.
Preloading em um manipulador de eventos
Chame preload
em um manipulador de eventos antes de fazer a transição 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}>Start Wizard</button>
);
}