preload
preload memungkinkan Anda mengambil sumber daya seperti stylesheet, font, atau skrip eksternal yang ingin Anda gunakan.
preload("https://example.com/font.woff2", {as: "font"});Referensi
preload(href, options)
Untuk memuat sumber daya, panggil fungsi preload dari react-dom.
import { preload } from 'react-dom';
function AppRoot() {
preload("https://example.com/font.woff2", {as: "font"});
// ...
}Lihat contoh lainnya di bawah ini.
Fungsi preload memberikan petunjuk kepada browser untuk mulai mengunduh sumber daya yang diberikan, yang dapat menghemat waktu.
Parameter
href: sebuah string. URL sumber daya yang ingin Anda unduh.options: sebuah objek. Ini berisi properti-properti berikut:as: string yang diperlukan. Jenis sumber daya. Nilai [yang mungkin] (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link#as) adalahaudio,document,embed,fetch,font,image,object,script,style,track,video,worker.crossOrigin: sebuah string. [Kebijakan CORS] (https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin) yang akan digunakan. Nilai yang mungkin adalahanonymousdanuse-credentials. Ini diperlukan ketikaasdisetel ke"fetch".referrerPolicy: a string. The Referrer header to send when fetching. Its possible values areno-referrer-when-downgrade(the default),no-referrer,origin,origin-when-cross-origin, andunsafe-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 areauto(the default),high, andlow.imageSrcSet: a string. For use only withas: "image". Specifies the source set of the image.imageSizes: a string. For use only withas: "image". Specifies the sizes of the image.
Returns
preload returns nothing.
Caveats
- Multiple equivalent calls to
preloadhave the same effect as a single call. Calls topreloadare considered equivalent according to the following rules:- Two calls are equivalent if they have the same
href, except: - If
asis set toimage, two calls are equivalent if they have the samehref,imageSrcSet, andimageSizes.
- Two calls are equivalent if they have the same
- In the browser, you can call
preloadin any situation: while rendering a component, in an Effect, in an event handler, and so on. - In server-side rendering or when rendering Server Components,
preloadonly 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.
Usage
Preloading when rendering
Call preload when rendering a component if you know that it or its children will use a specific resource.
Contoh 1 dari 4: Preloading an external script
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.
Preloading in an event handler
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>
);
}