next/script

Examples
Version History
VersionChanges
v12.2.4onReady prop added.
v11.0.0next/script introduced.

Note: This is API documentation for the Script Component. For a feature overview and usage information for scripts in Next.js, please see Script Optimization.

Optional Props

src

A path string specifying the URL of an external script. This can be either an absolute external URL or an internal path.

strategy

The loading strategy of the script.

strategyDescription
beforeInteractiveLoad script before the page becomes interactive
afterInteractiveLoad script immediately after the page becomes interactive
lazyOnloadLoad script during browser idle time
workerLoad script in a web worker

Note: worker is an experimental strategy that can only be used when enabled in next.config.js. See Off-loading Scripts To A Web Worker.

onLoad

A method that returns additional JavaScript that should be executed once after the script has finished loading.

Note: onLoad can't be used with the beforeInteractive loading strategy. Consider using onReady instead.

The following is an example of how to use the onLoad property:

import { useState } from 'react' import Script from 'next/script' export default function Home() { const [stripe, setStripe] = useState(null) return ( <> <Script id="stripe-js" src="https://js.stripe.com/v3/" onLoad={() => { setStripe({ stripe: window.Stripe('pk_test_12345') }) }} /> </> ) }

onReady

A method that returns additional JavaScript that should be executed after the script has finished loading and every time the component is mounted.

The following is an example of how to use the onReady property:

import { useState } from 'react' import Script from 'next/script' export default function Home() { return ( <> <Script id="google-maps" src="https://maps.googleapis.com/maps/api/js" onReady={() => { new google.maps.Map(ref.current, { center: { lat: -34.397, lng: 150.644 }, zoom: 8, }) }} /> </> ) }

onError

A method that executes if the script fails to load.

Note: onError can't be used with the beforeInteractive loading strategy.

The following is an example of how to use the onError property:

import Script from 'next/script' export default function Home() { return ( <> <Script id="will-fail" src="https://example.com/non-existant-script.js" onError={(e) => { console.error('Script failed to load', e) }} /> </> ) }