preinit
preinit te permite obtener y evaluar anticipadamente una hoja de estilos o un script externo.
preinit("https://example.com/script.js", {as: "script"});Referencia
preinit(href, options)
Para preinicializar un script o una hoja de estilos, llama a la función preinit de react-dom.
import { preinit } from 'react-dom';
function AppRoot() {
preinit("https://example.com/script.js", {as: "script"});
// ...
}Ver más ejemplos a continuación.
La función preinit proporciona al navegador una sugerencia de que debería comenzar a descargar y ejecutar el recurso dado, lo cual puede ahorrar tiempo. Los scripts que preinicializas con preinit se ejecutan cuando terminan de descargarse. Las hojas de estilos que preinicializas se insertan en el documento, lo que hace que entren en efecto de inmediato.
Parámetros
href: una cadena. La URL del recurso que deseas descargar y ejecutar.options: un objeto. Contiene las siguientes propiedades:as: una cadena requerida. El tipo de recurso. Sus valores posibles sonscriptystyle.precedence: una cadena. Requerida con hojas de estilos. Indica dónde insertar la hoja de estilos en relación con otras. Las hojas de estilos con mayor precedencia pueden anular las de menor precedencia. Los valores posibles sonreset,low,medium,high.crossOrigin: una cadena. La política CORS a utilizar. Sus valores posibles sonanonymousyuse-credentials. Es requerida cuandoasestá configurado como"fetch".integrity: una cadena. Un hash criptográfico del recurso, para verificar su autenticidad.nonce: una cadena. Un nonce criptográfico para permitir el recurso al usar una Política de Seguridad de Contenido estricta.fetchPriority: una cadena. Sugiere una prioridad relativa para obtener el recurso. Los valores posibles sonauto(el predeterminado),highylow.
Devuelve
preinit no devuelve nada.
Advertencias
- Múltiples llamadas a
preinitcon el mismohreftienen el mismo efecto que una sola llamada. - En el navegador, puedes llamar a
preiniten cualquier situación: mientras renderizas un componente, en un Efecto, en un controlador de eventos, y así sucesivamente. - En el renderizado del lado del servidor o al renderizar Componentes de Servidor,
preinitsolo tiene efecto si lo llamas mientras renderizas un componente o en un contexto asíncrono que se origina al renderizar un componente. Cualquier otra llamada será ignorada.
Uso
Preinicialización al renderizar
Llama a preinit al renderizar un componente si sabes que él o sus hijos usarán un recurso específico, y estás de acuerdo con que el recurso se evalúe y entre en efecto inmediatamente al descargarse.
Ejemplo 1 de 2: Preinicializar un script externo
import { preinit } from 'react-dom';
function AppRoot() {
preinit("https://example.com/script.js", {as: "script"});
return ...;
}Si quieres que el navegador descargue el script pero no lo ejecute de inmediato, usa preload en su lugar. Si quieres cargar un módulo ESM, usa preinitModule.
Preinicialización en un controlador de eventos
Llama a preinit en un controlador de eventos antes de hacer la transición a una página o estado donde se necesitarán recursos externos. Esto inicia el proceso antes que si lo llamas durante el renderizado de la nueva página o estado.
import { preinit } from 'react-dom';
function CallToAction() {
const onClick = () => {
preinit("https://example.com/wizardStyles.css", {as: "style"});
startWizard();
}
return (
<button onClick={onClick}>Start Wizard</button>
);
}