React-based frameworks frequently handle resource loading for you, so you might not have to call this API yourself. Consult your framework’s documentation for details.
preload lets you eagerly fetch a resource such as a stylesheet, font, or external script that you expect to use.
preload("https://example.com/font.woff2", {as: "font"});
preload(href, options)
To preload a resource, call the preload function from react-dom.
import { preload } from 'react-dom';
function AppRoot() {
preload("https://example.com/font.woff2", {as: "font"});
// ...
} The preload function provides the browser with a hint that it should start downloading the given resource, which can save time.
href: a string. The URL of the resource you want to download.options: an object. It contains the following properties: as: a required string. The type of resource. Its possible values are audio, document, embed, fetch, font, image, object, script, style, track, video, worker.crossOrigin: a string. The CORS policy to use. Its possible values are anonymous and use-credentials. It is required when as is set to "fetch".referrerPolicy: a string. The Referrer header to send when fetching. Its possible values are no-referrer-when-downgrade (the default), no-referrer, origin, origin-when-cross-origin, and unsafe-url.integrity: a string. A cryptographic hash of the resource, to verify its authenticity.type: a string. The MIME type of the resource.nonce: a string. A cryptographic nonce to allow the resource when using a strict Content Security Policy.fetchPriority: a string. Suggests a relative priority for fetching the resource. The possible values are auto (the default), high, and low.imageSrcSet: a string. For use only with as: "image". Specifies the source set of the image.imageSizes: a string. For use only with as: "image". Specifies the sizes of the image.preload returns nothing.
preload have the same effect as a single call. Calls to preload are considered equivalent according to the following rules: href, except:as is set to image, two calls are equivalent if they have the same href, imageSrcSet, and imageSizes.preload in any situation: while rendering a component, in an Effect, in an event handler, and so on.preload only has an effect if you call it while rendering a component or in an async context originating from rendering a component. Any other calls will be ignored.Call preload when rendering a component if you know that it or its children will use a specific resource.
import { preload } from 'react-dom';
function AppRoot() {
preload("https://example.com/script.js", {as: "script"});
return ...;
}
If you want the browser to start executing the script immediately (rather than just downloading it), use preinit instead. If you want to load an ESM module, use preloadModule.
Call preload in an event handler before transitioning to a page or state where external resources will be needed. This gets the process started earlier than if you call it during the rendering of the new page or state.
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>
);
}
© 2013–present Facebook Inc.
Licensed under the Creative Commons Attribution 4.0 International Public License.
https://react.dev/reference/react-dom/preload