prefetchDNS lets you eagerly look up the IP of a server that you expect to load resources from.
prefetchDNS("https://example.com");Reference
Section titled “Reference”prefetchDNS(href)
Section titled “prefetchDNS(href)”To look up a host, call the prefetchDNS function from react-dom.
import { prefetchDNS } from 'react-dom';
function AppRoot() { prefetchDNS("https://example.com"); // ...}The prefetchDNS function provides the browser with a hint that it should look up the IP address of a given server. If the browser chooses to do so, this can speed up the loading of resources from that server.
Parameters
Section titled “Parameters”href: a string. The URL of the server you want to connect to.
Returns
Section titled “Returns”prefetchDNS returns nothing.
Caveats
Section titled “Caveats”- Multiple calls to
prefetchDNSwith the same server have the same effect as a single call. - In the browser, you can call
prefetchDNSin 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,
prefetchDNSonly 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. - If you know the specific resources you’ll need, you can call other functions instead that will start loading the resources right away.
- There is no benefit to prefetching the same server the webpage itself is hosted from because it’s already been looked up by the time the hint would be given.
- Compared with
preconnect,prefetchDNSmay be better if you are speculatively connecting to a large number of domains, in which case the overhead of preconnections might outweigh the benefit.
Prefetching DNS when rendering
Section titled “Prefetching DNS when rendering”Call prefetchDNS when rendering a component if you know that its children will load external resources from that host.
import { prefetchDNS } from 'react-dom';
function AppRoot() { prefetchDNS("https://example.com"); return ...;}Prefetching DNS in an event handler
Section titled “Prefetching DNS in an event handler”Call prefetchDNS 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 { prefetchDNS } from 'react-dom';
function CallToAction() { const onClick = () => { prefetchDNS('http://example.com'); startWizard(); } return ( <button onClick={onClick}>Start Wizard</button> );}