<script> – React (2024)

Canary

React’s extensions to <script> are currently only available in React’s canary and experimental channels. In stable releases of React <script> works only as a built-in browser HTML component. Learn more about React’s release channels here.

The built-in browser <script> component lets you add a script to your document.

<script> alert("hi!") </script>

  • Reference
    • <script>
  • Usage
    • Rendering an external script
    • Rendering an inline script

Reference

<script>

To add inline or external scripts to your document, render the built-in browser <script> component. You can render <script> from any component and React will in certain cases place the corresponding DOM element in the document head and de-duplicate identical scripts.

See more examples below.

Props

<script> supports all common element props.

It should have either children or a src prop.

  • children: a string. The source code of an inline script.
  • src: a string. The URL of an external script.

Other supported props:

  • async: a boolean. Allows the browser to defer execution of the script until the rest of the document has been processed — the preferred behavior for performance.
  • crossOrigin: a string. The CORS policy to use. Its possible values are anonymous and use-credentials.
  • fetchPriority: a string. Lets the browser rank scripts in priority when fetching multiple scripts at the same time. Can be "high", "low", or "auto" (the default).
  • integrity: a string. A cryptographic hash of the script, to verify its authenticity.
  • noModule: a boolean. Disables the script in browsers that support ES modules — allowing for a fallback script for browsers that do not.
  • nonce: a string. A cryptographic nonce to allow the resource when using a strict Content Security Policy.
  • referrer: a string. Says what Referer header to send when fetching the script and any resources that the script fetches in turn.
  • type: a string. Says whether the script is a classic script, ES module, or import map.

Props that disable React’s special treatment of scripts:

  • onError: a function. Called when the script fails to load.
  • onLoad: a function. Called when the script finishes being loaded.

Props that are not recommended for use with React:

  • blocking: a string. If set to "render", instructs the browser not to render the page until the scriptsheet is loaded. React provides more fine-grained control using Suspense.
  • defer: a string. Prevents the browser from executing the script until the document is done loading. Not compatible with streaming server-rendered components. Use the async prop instead.

Special rendering behavior

React can move <script> components to the document’s <head> and de-duplicate identical scripts.

To opt into this behavior, provide the src and async={true} props. React will de-duplicate scripts if they have the same src. The async prop must be true to allow scripts to be safely moved.

This special treatment comes with two caveats:

  • React will ignore changes to props after the script has been rendered. (React will issue a warning in development if this happens.)
  • React may leave the script in the DOM even after the component that rendered it has been unmounted. (This has no effect as scripts just execute once when they are inserted into the DOM.)

Usage

Rendering an external script

If a component depends on certain scripts in order to be displayed correctly, you can render a <script> within the component.However, the component might be committed before the script has finished loading.You can start depending on the script content once the load event is fired e.g. by using the onLoad prop.

React will de-duplicate scripts that have the same src, inserting only one of them into the DOM even if multiple components render it.

import ShowRenderedHTML from './ShowRenderedHTML.js';function Map({lat, long}) { return ( <> <script async src="map-api.js" onLoad={() => console.log('script loaded')} /> <div id="map" data-lat={lat} data-long={long} /> </> );}export default function Page() { return ( <ShowRenderedHTML> <Map /> </ShowRenderedHTML> );}

Note

When you want to use a script, it can be beneficial to call the preinit function. Calling this function may allow the browser to start fetching the script earlier than if you just render a <script> component, for example by sending an HTTP Early Hints response.

Rendering an inline script

To include an inline script, render the <script> component with the script source code as its children. Inline scripts are not de-duplicated or moved to the document <head>.

import ShowRenderedHTML from './ShowRenderedHTML.js';function Tracking() { return ( <script> ga('send', 'pageview'); </script> );}export default function Page() { return ( <ShowRenderedHTML> <h1>My Website</h1> <Tracking /> <p>Welcome</p> </ShowRenderedHTML> );}
<script> – React (2024)
Top Articles
Where do I record my Cost of Goods for my eBay reselling business? TT defined inventory as "goods not sold". Do I record COG as business expenses?
Secrets to study abroad when you're broke
neither of the twins was arrested,传说中的800句记7000词
Best Pizza Novato
25X11X10 Atv Tires Tractor Supply
50 Meowbahh Fun Facts: Net Worth, Age, Birthday, Face Reveal, YouTube Earnings, Girlfriend, Doxxed, Discord, Fanart, TikTok, Instagram, Etc
Www.craigslist Augusta Ga
No Hard Feelings Showtimes Near Metropolitan Fiesta 5 Theatre
P2P4U Net Soccer
How To Delete Bravodate Account
Elbasha Ganash Corporation · 2521 31st Ave, Apt B21, Astoria, NY 11106
Walmart Windshield Wiper Blades
How Much Is Tay Ks Bail
Zalog Forum
G Switch Unblocked Tyrone
Apply for a credit card
Satisfactory: How to Make Efficient Factories (Tips, Tricks, & Strategies)
PowerXL Smokeless Grill- Elektrische Grill - Rookloos & geurloos grillplezier - met... | bol
Melissababy
SuperPay.Me Review 2023 | Legitimate and user-friendly
Watch Your Lie in April English Sub/Dub online Free on HiAnime.to
January 8 Jesus Calling
Creed 3 Showtimes Near Island 16 Cinema De Lux
Skidware Project Mugetsu
130Nm In Ft Lbs
Frank Vascellaro
Sinai Sdn 2023
Mia Malkova Bio, Net Worth, Age & More - Magzica
3473372961
How to Use Craigslist (with Pictures) - wikiHow
Royals op zondag - "Een advertentie voor Center Parcs" of wat moeten we denken van de laatste video van prinses Kate?
About Us | SEIL
Oxford Alabama Craigslist
About :: Town Of Saugerties
Blasphemous Painting Puzzle
Sc Pick 4 Evening Archives
Cheetah Pitbull For Sale
Topos De Bolos Engraçados
B.C. lightkeepers' jobs in jeopardy as coast guard plans to automate 2 stations
2 Pm Cdt
No Boundaries Pants For Men
Pekin Soccer Tournament
The Wait Odotus 2021 Watch Online Free
Craigslist Antique
Garland County Mugshots Today
Expendables 4 Showtimes Near Malco Tupelo Commons Cinema Grill
Kaamel Hasaun Wikipedia
9294027542
Freightliner Cascadia Clutch Replacement Cost
Rubmaps H
Latest Posts
Article information

Author: Amb. Frankie Simonis

Last Updated:

Views: 6095

Rating: 4.6 / 5 (56 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Amb. Frankie Simonis

Birthday: 1998-02-19

Address: 64841 Delmar Isle, North Wiley, OR 74073

Phone: +17844167847676

Job: Forward IT Agent

Hobby: LARPing, Kitesurfing, Sewing, Digital arts, Sand art, Gardening, Dance

Introduction: My name is Amb. Frankie Simonis, I am a hilarious, enchanting, energetic, cooperative, innocent, cute, joyous person who loves writing and wants to share my knowledge and understanding with you.