Crawler Report for react.dev

Summary

  • ⛔ 1 page(s) with multiple <h1> headings.
  • ⛔ Security - 328 pages(s) with critical finding(s).
  • ⚠️ Redirects - 4 redirects found.
  • ⚠️ The description '' exceeds the allowed 10% duplicity. 99% of pages have this same description.
  • ⚠️ No AVIF image found on the website.
  • ⚠️ 165 page(s) with large inline SVGs (> 5120 bytes).
  • ⚠️ 119 page(s) with duplicated inline SVGs (> 5 duplicates).
  • ⚠️ 155 page(s) with skipped heading levels.
  • ⚠️ 1 page(s) with deep DOM (> 30 levels).
  • ⚠️ 3 page(s) without image alt attributes.
  • ⚠️ 163 page(s) without aria labels.
  • ⚠️ 163 page(s) without role attributes.
  • ⏩ Loaded robots.txt for domain 'react.dev': status code 200, size 24 B and took 86 ms.
  • ⏩ Loaded robots.txt for domain 'www.googletagmanager.com': status code 404, size 2 kB and took 55 ms.
  • ⏩ 404 NOTICE - 1 non-existent page(s) found.
  • ⏩ DNS IPv6: domain react.dev does not support IPv6 (DNS server: 10.255.255.254).
  • ✅ SSL/TLS certificate is valid until Oct 19 06:00:51 2024 GMT. Issued by C = US, O = Let's Encrypt, CN = R10. Subject is CN = react.dev.
  • ✅ SSL/TLS certificate issued by 'C = US, O = Let's Encrypt, CN = R10'.
  • ✅ Performance OK - all non-media URLs are faster than 3 seconds.
  • ✅ HTTP headers - found 23 unique headers.
  • ✅ All 163 unique title(s) are within the allowed 10% duplicity. Highest duplicity title has 0%.
  • ✅ All pages support Brotli compression.
  • ✅ 331 WebP image(s) found on the website.
  • ✅ All pages have quoted attributes.
  • ✅ All pages have valid or none inline SVGs.
  • ✅ All pages have <h1> heading.
  • ✅ All pages have clickable (interactive) phone numbers.
  • ✅ All pages have valid HTML.
  • ✅ All pages have form labels.
  • ✅ All pages have lang attribute.
  • ✅ DNS IPv4 OK: domain react.dev resolved to 76.76.21.98, 76.76.21.123 (DNS server: 10.255.255.254).
  • 📌 Text report saved to '%path%/siteone-crawler/tmp/react.dev.output.20240816-184802.txt' and took 1 ms.
  • 📌 JSON report saved to '%path%/siteone-crawler/tmp/react.dev.output.20240816-184802.json' and took 10 ms.
  • 📌 HTML report saved to '%path%/siteone-crawler/tmp/react.dev.report.20240816-184802.html' and took 139 ms.

Visited URLs

Found 626 row(s).
URLStatusTypeTime (s)SizeX-Vercel-CacheTitle
/200 HTML91 ms 259 kBHITReact
/images/home/conf2021/roman.jpg200 Image49 ms 981 BHIT
/images/home/conf2021/eric.jpg200 Image57 ms 1 kBHIT
/images/home/conf2021/shruti.jpg200 Image46 ms 1 kBHIT
/community200 HTML57 ms 77 kBHITReact Community – React
/fonts/Optimistic_Display_W_SBd.woff2200 Font69 ms 23 kBHIT
/images/uwu.png200 Image70 ms 54 kBHIT
/community/translations200 HTML62 ms 99 kBHITTranslations – React
/community/meetups200 HTML61 ms 194 kBHITReact Meetups – React
/images/home/community/react_india_team.webp200 Image63 ms 25 kBHIT
/versions200 HTML57 ms 205 kBHITReact Versions – React
/images/home/conf2021/delba.jpg200 Image43 ms 1 kBHIT
/community/videos200 HTML79 ms 118 kBHITReact Videos – React
/favicon-16x16.png200 Image42 ms 872 BHIT
/fonts/Optimistic_Display_W_Md.woff2200 Font133 ms23 kBHIT
/safari-pinned-tab.svg200 Image44 ms 4 kBHIT
/learn200 HTML68 ms 255 kBHITQuick Start – React
/images/home/conf2021/lauren.jpg200 Image43 ms 5 kBHIT
/reference/react/components200 HTML69 ms 187 kBHITBuilt-in React Components – React
/learn/render-and-commit200 HTML93 ms 164 kBHITRender and Commit – React
/learn/preserving-and-resetting-state200 HTML71 ms 465 kBHITPreserving and Resetting State – React
/reference/react-dom/components/textarea200 HTML124 ms353 kBHIT&lt;textarea&gt; – React
/reference/react-dom/components/link200 HTML83 ms 301 kBHIT&lt;link&gt; – React
/reference/react-dom/hydrate200 HTML111 ms254 kBHIThydrate – React
/reference/react-dom/components/common200 HTML72 ms 846 kBHITCommon components (e.g. &lt;div&gt;) – React
/reference/rsc/use-client200 HTML81 ms 334 kBHIT'use client' directive – React
/reference/rsc/use-server200 HTML76 ms 260 kBHIT'use server' directive – React
/reference/react/cloneElement200 HTML93 ms 344 kBHITcloneElement – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_diff_same_pt2.dark.png&w=1920&q=75200 Image305 ms29 kBHIT
/reference/react/createRef200 HTML69 ms 250 kBHITcreateRef – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_diff_same_pt2.dark.png&w=828&q=75200 Image55 ms 19 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fuse_client_module_dependency.png&w=640&q=75200 Image82 ms 19 kBHIT
/reference/react/cache200 HTML88 ms 360 kBHITcache – React
/reference/react/useRef200 HTML91 ms 315 kBHITuseRef – React
/images/docs/illustrations/i_render-and-commit3.png200 Image83 ms 22 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_add_component.png&w=640&q=75200 Image178 ms14 kBHIT
/reference/react-dom/preinitModule200 HTML56 ms 223 kBHITpreinitModule – React
/reference/react-dom/preconnect200 HTML68 ms 215 kBHITpreconnect – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_data_parent_clicked.png&w=828&q=75200 Image56 ms 25 kBHIT
/reference/rules/react-calls-components-and-hooks200 HTML67 ms 210 kBHITReact calls Components and Hooks – React
/reference/react/useInsertionEffect200 HTML63 ms 230 kBHITuseInsertionEffect – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_diff_position_p1.png&w=640&q=75200 Image177 ms13 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_diff_pt1.png&w=1920&q=75200 Image58 ms 21 kBHIT
/reference/react/useReducer200 HTML87 ms 402 kBHITuseReducer – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_diff_position_p1.png&w=1080&q=75200 Image74 ms 19 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_add_component.png&w=1080&q=75200 Image70 ms 19 kBHIT
/reference/react-dom/render200 HTML85 ms 255 kBHITrender – React
/learn/conditional-rendering200 HTML71 ms 278 kBHITConditional Rendering – React
/learn/typescript200 HTML94 ms 275 kBHITUsing TypeScript – React
/learn/tutorial-tic-tac-toe200 HTML74 ms 931 kBHITTutorial: Tic-Tac-Toe – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fuse_client_module_dependency.dark.png&w=1080&q=75200 Image202 ms40 kBHIT
/images/tutorial/number-filled-board.png200 Image42 ms 3 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fuse_client_module_dependency.png&w=1080&q=75200 Image197 ms32 kBHIT
/images/tutorial/react-starter-code-codesandbox.png200 Image70 ms 62 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_diff_pt1.dark.png&w=828&q=75200 Image57 ms 14 kBHIT
/learn/referencing-values-with-refs200 HTML67 ms 244 kBHITReferencing Values with Refs – React
/reference/react/PureComponent200 HTML56 ms 262 kBHITPureComponent – React
/images/docs/illustrations/i_ref.png200 Image73 ms 23 kBHIT
/reference/react-dom/components/style200 HTML71 ms 233 kBHIT&lt;style&gt; – React
/images/home/conf2021/shaundai.jpg200 Image96 ms 2 kBHIT
/reference/react/useActionState200 HTML60 ms 262 kBHITuseActionState – React
/learn/add-react-to-an-existing-project200 HTML70 ms 154 kBHITAdd React to an Existing Project – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_dif…position_p3.dark.png&w=1080&q=75200 Image202 ms23 kBHIT
/images/home/conf2021/tafu.jpg200 Image72 ms 1 kBHIT
/reference/react/legacy200 HTML55 ms 192 kBHITLegacy React APIs – React
/learn/extracting-state-logic-into-a-reducer200 HTML69 ms 359 kBHITExtracting State Logic into a Reducer – React
/reference/react/Component200 HTML84 ms 888 kBHITComponent – React
/_next/static/chunks/main-78a3b4c2aa4e4850.js200 JS65 ms 92 kBHIT
/fonts/Optimistic_Text_W_It.woff2200 Font58 ms 25 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_diff_pt1.dark.png&w=1920&q=75200 Image203 ms20 kBHIT
/reference/react/memo200 HTML134 ms319 kBHITmemo – React
/learn/sharing-state-between-components200 HTML102 ms231 kBHITSharing State Between Components – React
/learn/react-compiler200 HTML81 ms 240 kBHITReact Compiler – React
/community/docs-contributors200 HTML57 ms 86 kBHITDocs Contributors – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_state_parent_clicked.png&w=640&q=75200 Image92 ms 20 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_state_child.png&w=640&q=75200 Image83 ms 13 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_state_parent_clicked.dark.png&w=640&q=75200 Image58 ms 20 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_increment.dark.png&w=640&q=75200 Image59 ms 13 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_diff_pt2.png&w=1920&q=75200 Image58 ms 21 kBHIT
/_next/static/chunks/pages/_app-dd0b77ea7bd5b246.js200 JS59 ms 1 kBHIT
/community/versioning-policy200 HTML66 ms 131 kBHITVersioning Policy – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_state_child.png&w=1080&q=75200 Image58 ms 18 kBHIT
/learn/editor-setup200 HTML58 ms 112 kBHITEditor Setup – React
/learn/managing-state200 HTML69 ms 296 kBHITManaging State – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_tree.dark.png&w=828&q=75200 Image86 ms 13 kBHIT
/_next/static/j0OVEbBmW0hlpiqUhjMXe/_buildManifest.js200 JS57 ms 758 BHIT
/learn/queueing-a-series-of-state-updates200 HTML60 ms 225 kBHITQueueing a Series of State Updates – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_state_child_clicked.png&w=640&q=75200 Image56 ms 13 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_data_child_clicked.png&w=828&q=75200 Image54 ms 17 kBHIT
/reference/react/createFactory200 HTML57 ms 267 kBHITcreateFactory – React
/images/tutorial/o-replaces-x.gif200 Image54 ms 19 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_data_parent.dark.png&w=828&q=75200 Image53 ms 17 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_data_child_clicked.png&w=640&q=75200 Image76 ms 15 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fuse_client_module_dependency.png&w=1200&q=75200 Image216 ms35 kBHIT
/reference/react/useDebugValue200 HTML55 ms 223 kBHITuseDebugValue – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_remove_component.png&w=1080&q=75200 Image57 ms 13 kBHIT
/images/home/conf2021/helen.jpg200 Image43 ms 1 kBHIT
/learn/scaling-up-with-reducer-and-context200 HTML1.1 s 290 kBHITScaling Up with Reducer and Context – React
/reference/react-dom/preinit200 HTML61 ms 234 kBHITpreinit – React
/reference/react/useEffect200 HTML82 ms 631 kBHITuseEffect – React
/images/home/conf2021/steven.jpg200 Image62 ms 4 kBHIT
/images/home/community/react_india_hallway.webp200 Image56 ms 21 kBHIT
/reference/react/experimental_useEffectEvent200 HTML70 ms 180 kBHITexperimental_useEffectEvent – React
/learn/thinking-in-react200 HTML73 ms 276 kBHITThinking in React – React
/images/docs/s_thinking-in-react_ui_outline.png200 Image70 ms 81 kBHIT
/favicon-32x32.png200 Image44 ms 2 kBHIT
/learn/lifecycle-of-reactive-effects200 HTML76 ms 426 kBHITLifecycle of Reactive Effects – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fuse_client_render_tree.dark.png&w=1080&q=75200 Image181 ms32 kBHIT
/reference/react-dom/components/input200 HTML102 ms440 kBHIT&lt;input&gt; – React
/reference/react200 HTML57 ms 193 kBHITReact Reference Overview – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_same_component.png&w=640&q=75200 Image181 ms22 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_tree.png&w=640&q=75200 Image198 ms13 kBHIT
/reference/react-dom/server/renderToPipeableStream200 HTML85 ms 392 kBHITrenderToPipeableStream – React
/reference/react/useState200 HTML94 ms 474 kBHITuseState – React
/reference/react-dom/components/script200 HTML58 ms 251 kBHIT&lt;script&gt; – React
/reference/react/isValidElement200 HTML57 ms 226 kBHITisValidElement – React
/blog/2021/06/08/the-plan-for-react-18200 HTML89 ms 87 kBHITThe Plan for React 18 – React
/reference/react-dom/preload200 HTML92 ms 243 kBHITpreload – React
/learn/updating-arrays-in-state200 HTML85 ms 387 kBHITUpdating Arrays in State – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_state_child.dark.png&w=1080&q=75200 Image71 ms 15 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_add_component.dark.png&w=1080&q=75200 Image183 ms17 kBHIT
/reference/react-dom/components/form200 HTML60 ms 342 kBHIT&lt;form&gt; – React
/learn/responding-to-events200 HTML97 ms 314 kBHITResponding to Events – React
/images/home/conf2021/cover.svg200 Image1.1 s 1 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_data_child.png&w=640&q=75200 Image72 ms 14 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_diff_position_p3.png&w=640&q=75200 Image196 ms17 kBHIT
/images/home/conf2021/andrew.jpg200 Image40 ms 2 kBHIT
/reference/react-dom/prefetchDNS200 HTML56 ms 216 kBHITprefetchDNS – React
/reference/react/useSyncExternalStore200 HTML74 ms 323 kBHITuseSyncExternalStore – React
/reference/react/useId200 HTML61 ms 280 kBHITuseId – React
/reference/react-dom/createPortal200 HTML62 ms 292 kBHITcreatePortal – React
/learn/manipulating-the-dom-with-refs200 HTML80 ms 363 kBHITManipulating the DOM with Refs – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_state_child_clicked.png&w=1080&q=75200 Image57 ms 18 kBHIT
/learn/describing-the-ui200 HTML303 ms264 kBHITDescribing the UI – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fgeneric_render_tree.png&w=640&q=75200 Image53 ms 22 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fgeneric_render_tree.png&w=1080&q=75200 Image182 ms39 kBHIT
/learn/escape-hatches200 HTML76 ms 332 kBHITEscape Hatches – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fgeneric_dependency_tree.dark.png&w=1080&q=75200 Image180 ms20 kBHIT
/reference/react-dom/components/meta200 HTML55 ms 232 kBHIT&lt;meta&gt; – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fgeneric_render_tree.dark.png&w=640&q=75200 Image57 ms 19 kBHIT
/_next/static/chunks/webpack-1c06bae64726f723.js200 JS51 ms 5 kBHIT
/fonts/Optimistic_Text_W_Rg.woff2200 Font55 ms 22 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_state_parent.dark.png&w=640&q=75200 Image54 ms 15 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_diff_position_p1.dark.png&w=640&q=75200 Image179 ms13 kBHIT
/reference/react/experimental_taintUniqueValue200 HTML60 ms 240 kBHITexperimental_taintUniqueValue – React
/images/tutorial/devtools-select.gif200 Image219 ms245 kBHIT
/_next/static/chunks/framework-1f5321399f6bc226.js200 JS73 ms 178 kBHIT
/learn/state-as-a-snapshot200 HTML59 ms 223 kBHITState as a Snapshot – React
/reference/react-dom/flushSync200 HTML77 ms 228 kBHITflushSync – React
/images/home/community/react_conf_elizabet.webp200 Image76 ms 20 kBHIT
/images/tutorial/nine-x-filled-squares.png200 Image41 ms 764 BHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_state_parent.png&w=640&q=75200 Image56 ms 17 kBHIT
/reference/react-dom/components/select200 HTML68 ms 357 kBHIT&lt;select&gt; – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_diff_pt1.png&w=828&q=75200 Image178 ms14 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_diff_same_pt1.png&w=828&q=75200 Image220 ms19 kBHIT
/reference/rsc/server-components200 HTML58 ms 267 kBHITReact Server Components – React
/learn/passing-data-deeply-with-context200 HTML91 ms 340 kBHITPassing Data Deeply with Context – React
/reference/react/use200 HTML91 ms 338 kBHITuse – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpassing_data_prop_drilling.dark.png&w=640&q=75200 Image208 ms12 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpassing_data_context_far.dark.png&w=1920&q=75200 Image184 ms30 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpassing_data_context_close.png&w=1920&q=75200 Image169 ms9 kBHIT
/reference/react/startTransition200 HTML58 ms 213 kBHITstartTransition – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpassing_data_context_far.png&w=1920&q=75200 Image202 ms28 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpassing_data_prop_drilling.dark.png&w=1920&q=75200 Image173 ms17 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpassing_data_prop_drilling.png&w=640&q=75200 Image185 ms13 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpassing_data_lifting_state.png&w=640&q=75200 Image195 ms6 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpassing_data_context_close.png&w=640&q=75200 Image175 ms8 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpassing_data_lifting_state.dark.png&w=640&q=75200 Image234 ms6 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpassing_data_context_close.dark.png&w=640&q=75200 Image44 ms 8 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_tree.dark.png&w=640&q=75200 Image53 ms 12 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpassing_data_prop_drilling.png&w=1920&q=75200 Image63 ms 18 kBHIT
/reference/rsc/directives200 HTML72 ms 191 kBHITDirectives – React
/reference/react-dom/unmountComponentAtNode200 HTML61 ms 216 kBHITunmountComponentAtNode – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fgeneric_dependency_tree.dark.png&w=640&q=75200 Image56 ms 13 kBHIT
/reference/react-dom/hooks/useFormStatus200 HTML226 ms271 kBHITuseFormStatus – React
/fonts/Optimistic_Display_W_Bd.woff2200 Font61 ms 23 kBHIT
/images/tutorial/tictac-adding-x-s.gif200 Image119 ms159 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_diff_position_p2.png&w=640&q=75200 Image182 ms18 kBHIT
/reference/react/Profiler200 HTML66 ms 228 kBHIT&lt;Profiler&gt; – React
/images/tutorial/two-x-filled-squares.png200 Image68 ms 594 BHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_data_child.dark.png&w=828&q=75200 Image69 ms 14 kBHIT
/images/docs/illustrations/i_rerender2.png200 Image66 ms 25 kBHIT
/_next/image?url=%2Fimages%2Fuwu.png&w=640&q=75200 Image63 ms 22 kBHIT
/reference/react/StrictMode200 HTML112 ms362 kBHIT&lt;StrictMode&gt; – React
/images/home/community/react_india_sunil.webp200 Image67 ms 18 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_diff_position_p2.dark.png&w=640&q=75200 Image495 ms18 kBHIT
/images/docs/illustrations/i_rerender1.png200 Image58 ms 30 kBHIT
/reference/rules200 HTML61 ms 198 kBHITRules of React – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fuse_client_render_tree.dark.png&w=640&q=75200 Image243 ms20 kBHIT
/images/docs/illustrations/i_state-snapshot2.png200 Image72 ms 51 kBHIT
/images/docs/illustrations/i_render-and-commit1.png200 Image63 ms 27 kBHIT
/reference/react-dom/findDOMNode200 HTML60 ms 314 kBHITfindDOMNode – React
/learn/passing-props-to-a-component200 HTML75 ms 257 kBHITPassing Props to a Component – React
/images/docs/illustrations/i_children-prop.png200 Image71 ms 57 kBHIT
/blog/2024/05/22/react-conf-2024-recap200 HTML58 ms 124 kBHITReact Conf 2024 Recap – React
/reference/react/apis200 HTML70 ms 193 kBHITBuilt-in React APIs – React
/images/docs/illustrations/i_state-snapshot1.png200 Image69 ms 59 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_state_parent.dark.png&w=1080&q=75200 Image182 ms19 kBHIT
/reference/react/forwardRef200 HTML66 ms 329 kBHITforwardRef – React
/learn/state-a-components-memory200 HTML1.1 s 332 kBHITState: A Component's Memory – React
/images/tutorial/board-filled-with-ones.png200 Image43 ms 503 BHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpassing_data_context_far.dark.png&w=640&q=75200 Image205 ms24 kBHIT
/images/home/conf2021/debbie.jpg200 Image42 ms 809 BHIT
/reference/react-dom/components/option200 HTML58 ms 216 kBHIT&lt;option&gt; – React
/images/home/videos/rethinking.jpg200 Image82 ms 8 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_state_parent_clicked.dark.png&w=1080&q=75200 Image195 ms27 kBHIT
/images/home/videos/hooks.jpg200 Image42 ms 5 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_state_parent.png&w=1080&q=75200 Image58 ms 23 kBHIT
/learn/keeping-components-pure200 HTML83 ms 227 kBHITKeeping Components Pure – React
/images/docs/illustrations/i_state-snapshot3.png200 Image73 ms 54 kBHIT
/learn/synchronizing-with-effects200 HTML73 ms 494 kBHITSynchronizing with Effects – React
/images/home/conf2021/juan.jpg200 Image51 ms 1018 BHIT
/_next/image?url=%2Fimages%2Fuwu.png&w=384&q=75200 Image65 ms 14 kBHIT
/reference/react-dom/server/renderToStaticNodeStream200 HTML57 ms 211 kBHITrenderToStaticNodeStream – React
/blog200 HTML64 ms 83 kBHITReact Blog – React
/reference/react/experimental_taintObjectReference200 HTML56 ms 229 kBHITexperimental_taintObjectReference – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_data_parent_clicked.dark.png&w=828&q=75200 Image65 ms 24 kBHIT
/images/home/community/react_conf_fun.webp200 Image76 ms 55 kBHIT
/reference/react/useImperativeHandle200 HTML81 ms 256 kBHITuseImperativeHandle – React
/images/docs/illustrations/i_puritea-recipe.png200 Image71 ms 48 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_diff_pt2.dark.png&w=1920&q=75200 Image206 ms20 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_remove_component.dark.png&w=640&q=75200 Image173 ms12 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_rem…e_component.dark.png&w=1080&q=75200 Image188 ms13 kBHIT
/reference/react-dom/server/renderToStaticMarkup200 HTML69 ms 208 kBHITrenderToStaticMarkup – React
/images/docs/illustrations/i_render2.png200 Image47 ms 9 kBHIT
/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js200 JS58 ms 89 kBHIT
/learn/removing-effect-dependencies200 HTML71 ms 527 kBHITRemoving Effect Dependencies – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_diff_pt2.png&w=828&q=75200 Image202 ms15 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_dif…position_p1.dark.png&w=1080&q=75200 Image225 ms18 kBHIT
/learn/updating-objects-in-state200 HTML70 ms 349 kBHITUpdating Objects in State – React
/_next/static/css/70006ba8a90671f5.css200 CSS53 ms 108 kBHIT
/fonts/Optimistic_Text_Cyrl_W_Md.woff2200 Font58 ms 24 kBHIT
/images/meta-gradient-dark.png200 Image43 ms 2 kBHIT
/reference/react-dom/components/progress200 HTML62 ms 209 kBHIT&lt;progress&gt; – React
/reference/react/useMemo200 HTML71 ms 466 kBHITuseMemo – React
/fonts/Optimistic_Text_Viet_W_Rg.woff2200 Font57 ms 20 kBHIT
/fonts/Optimistic_Display_Arbc_W_Md.woff2200 Font67 ms 29 kBHIT
/fonts/Optimistic_Display_Viet_W_SBd.woff2200 Font59 ms 20 kBHIT
/fonts/Optimistic_Display_Cyrl_W_SBd.woff2200 Font59 ms 25 kBHIT
/images/g_arrow.png200 Image42 ms 5 kBHIT
/fonts/Optimistic_Text_Arbc_W_Md.woff2200 Font58 ms 29 kBHIT
/fonts/Optimistic_Display_W_MdIt.woff2200 Font92 ms 23 kBHIT
/fonts/Optimistic_Display_W_SBdIt.woff2200 Font59 ms 24 kBHIT
/fonts/Optimistic_Text_W_MdIt.woff2200 Font59 ms 26 kBHIT
/images/meta-gradient.png200 Image43 ms 2 kBHIT
/fonts/Optimistic_Text_Deva_W_Rg.woff2200 Font153 ms91 kBHIT
/fonts/Optimistic_Display_W_BdIt.woff2200 Font57 ms 24 kBHIT
/fonts/Optimistic_Display_Cyrl_W_Bd.woff2200 Font60 ms 25 kBHIT
/fonts/Optimistic_Display_Deva_W_Bd.woff2200 Font74 ms 91 kBHIT
/fonts/Optimistic_Text_Deva_W_Bd.woff2200 Font105 ms94 kBHIT
/fonts/Optimistic_Display_Deva_W_SBd.woff2200 Font108 ms90 kBHIT
/fonts/Optimistic_Text_Viet_W_Md.woff2200 Font59 ms 21 kBHIT
/fonts/Optimistic_Text_Cyrl_W_Bd.woff2200 Font62 ms 25 kBHIT
/fonts/Optimistic_Text_Arbc_W_Rg.woff2200 Font55 ms 28 kBHIT
/fonts/Optimistic_Display_Arbc_W_Bd.woff2200 Font54 ms 29 kBHIT
/images/home/conf2021/rachel.jpg200 Image42 ms 2 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_add_component.dark.png&w=640&q=75200 Image61 ms 14 kBHIT
/blog/2024/02/15/react-labs-what-we-have-been-working-on-february-2024200 HTML58 ms 122 kBHITReact Labs: What We've Been Working On – February 2024 – React
/blog/2023/03/16/introducing-react-dev200 HTML68 ms 218 kBHITIntroducing react.dev – React
/_next/static/chunks/247-b45f1ff89e0703d2.js200 JS83 ms 235 kBHIT
/reference308 Redirect41 ms 97 B
/images/tutorial/board-filled-with-value.png200 Image77 ms 21 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_same_component.dark.png&w=640&q=75200 Image175 ms22 kBHIT
/reference/react-dom/components200 HTML57 ms 342 kBHITReact DOM Components – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_data_child_clicked.dark.png&w=640&q=75200 Image64 ms 14 kBHIT
/reference/react/useTransition200 HTML84 ms 448 kBHITuseTransition – React
/reference/react/Fragment200 HTML96 ms 256 kBHIT&lt;Fragment&gt; (&lt;&gt;...&lt;/&gt;) – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_diff_position_p3.png&w=1080&q=75200 Image70 ms 24 kBHIT
/reference/react/Suspense200 HTML69 ms 461 kBHIT&lt;Suspense&gt; – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_same_component.png&w=1200&q=75200 Image62 ms 38 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_state_parent_clicked.png&w=1080&q=75200 Image57 ms 28 kBHIT
/reference/react-dom/server200 HTML64 ms 198 kBHITServer React DOM APIs – React
/fonts/Optimistic_Display_Viet_W_Bd.woff2200 Font57 ms 20 kBHIT
/fonts/Optimistic_Text_W_Md.woff2200 Font55 ms 23 kBHIT
/fonts/Optimistic_Text_Deva_W_Md.woff2200 Font147 ms93 kBHIT
/images/docs/react-devtools-usedebugvalue.png200 Image71 ms 83 kBHIT
/images/home/conf2019/cover.svg200 Image50 ms 11 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_increment.png&w=640&q=75200 Image180 ms13 kBHIT
/fonts/Optimistic_Display_Viet_W_Md.woff2200 Font64 ms 20 kBHIT
/images/docs/illustrations/i_render3.png200 Image72 ms 32 kBHIT
/images/home/community/react_conf_hallway.webp200 Image68 ms 41 kBHIT
/images/home/conf2021/lyle.jpg200 Image43 ms 1 kBHIT
/images/docs/illustrations/i_render-and-commit2.png200 Image57 ms 22 kBHIT
/reference/rsc/server-actions200 HTML58 ms 248 kBHITServer Actions – React
/images/home/conf2021/daishi.jpg200 Image42 ms 1 kBHIT
/community/acknowledgements200 HTML58 ms 98 kBHITAcknowledgements – React
/reference/react-dom/hooks/useFormState308 Redirect39 ms 127 B
/learn/installation200 HTML56 ms 111 kBHITInstallation – React
/learn/writing-markup-with-jsx200 HTML75 ms 187 kBHITWriting Markup with JSX – React
/reference/rules/rules-of-hooks200 HTML72 ms 212 kBHITRules of Hooks – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fwriting_jsx_sidebar.dark.png&w=750&q=75200 Image191 ms16 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fwriting_jsx_html.png&w=384&q=75200 Image49 ms 6 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fwriting_jsx_html.dark.png&w=750&q=75200 Image184 ms9 kBHIT
/blog/2022/03/08/react-18-upgrade-guide200 HTML56 ms 174 kBHITHow to Upgrade to React 18 – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fwriting_jsx_html.dark.png&w=384&q=75200 Image45 ms 6 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fwriting_jsx_html.png&w=750&q=75200 Image47 ms 9 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fwriting_jsx_form.dark.png&w=750&q=75200 Image265 ms18 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fwriting_jsx_js.png&w=384&q=75200 Image1.1 s 7 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fwriting_jsx_sidebar.png&w=750&q=75200 Image54 ms 16 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fwriting_jsx_form.png&w=750&q=75200 Image55 ms 18 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fwriting_jsx_form.png&w=384&q=75200 Image45 ms 10 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fwriting_jsx_js.dark.png&w=384&q=75200 Image46 ms 8 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fwriting_jsx_js.png&w=750&q=75200 Image54 ms 12 kBHIT
/images/home/conf2021/sarah.jpg200 Image53 ms 1 kBHIT
/reference/react/useOptimistic200 HTML57 ms 234 kBHITuseOptimistic – React
/learn/javascript-in-jsx-with-curly-braces200 HTML80 ms 213 kBHITJavaScript in JSX with Curly Braces – React
/reference/rules/components-and-hooks-must-be-pure200 HTML87 ms 315 kBHITComponents and Hooks must be pure – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_data_parent.png&w=828&q=75200 Image56 ms 21 kBHIT
/images/home/conf2021/brian.jpg200 Image42 ms 1 kBHIT
/blog/2021/12/17/react-conf-2021-recap200 HTML81 ms 132 kBHITReact Conf 2021 Recap – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpassing_data_context_close.dark.png&w=1920&q=75200 Image222 ms10 kBHIT
/apple-touch-icon.png200 Image43 ms 6 kBHIT
/learn/understanding-your-ui-as-a-tree200 HTML62 ms 162 kBHITUnderstanding Your UI as a Tree – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_increment.png&w=1080&q=75200 Image55 ms 16 kBHIT
/learn/separating-events-from-effects200 HTML81 ms 416 kBHITSeparating Events from Effects – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fconditional_render_tree.png&w=640&q=75200 Image198 ms18 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Frender_tree.dark.png&w=640&q=75200 Image65 ms 14 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Frender_tree.png&w=1080&q=75200 Image182 ms29 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fmodule_dependency_tree.dark.png&w=750&q=75200 Image57 ms 16 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fconditional_render_tree.dark.png&w=1200&q=75200 Image59 ms 26 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Frender_tree.dark.png&w=1080&q=75200 Image57 ms 22 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Frender_tree.png&w=640&q=75200 Image220 ms17 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fmodule_dependency_tree.dark.png&w=1920&q=75200 Image57 ms 23 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fmodule_dependency_tree.png&w=1920&q=75200 Image188 ms33 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fconditional_render_tree.png&w=1200&q=75200 Image56 ms 34 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fconditional_render_tree.dark.png&w=640&q=75200 Image58 ms 14 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_dom_tree.dark.png&w=1920&q=75200 Image59 ms 27 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_dom_tree.png&w=1080&q=75200 Image266 ms23 kBHIT
/reference/react-dom/server/renderToString200 HTML86 ms 235 kBHITrenderToString – React
/blog/2024/04/25/react-19-upgrade-guide200 HTML72 ms 311 kBHITReact 19 RC Upgrade Guide – React
/learn/adding-interactivity200 HTML68 ms 290 kBHITAdding Interactivity – React
/fonts/Optimistic_Text_W_Bd.woff2200 Font75 ms 23 kBHIT
/link/new-jsx-transform307 Redirect42 ms 227 B
/TODO404 HTML69 ms 83 kBHITNot Found – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_data_parent_clicked.dark.png&w=640&q=75200 Image55 ms 22 kBHIT
/warnings/react-dom-test-utils200 HTML57 ms 90 kBHITreact-dom/test-utils Deprecation Warnings – React
/_next/static/chunks/pages/404-5e42325bccc9ccb1.js200 JS44 ms 836 BHIT
/_next/image?url=%2Fimages%2Fuwu.png&w=128&q=75200 Image62 ms 6 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_diff_same_pt1.dark.png&w=828&q=75200 Image181 ms19 kBHIT
/reference/react/lazy200 HTML61 ms 245 kBHITlazy – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fgeneric_dependency_tree.png&w=640&q=75200 Image90 ms 15 kBHIT
/reference/react-dom/server/renderToReadableStream200 HTML79 ms 393 kBHITrenderToReadableStream – React
/reference/react/useCallback200 HTML89 ms 403 kBHITuseCallback – React
/reference/react-dom/preloadModule200 HTML130 ms223 kBHITpreloadModule – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_dom_tree.png&w=1920&q=75200 Image78 ms 29 kBHIT
/images/docs/illustrations/i_rerender3.png200 Image62 ms 22 kBHIT
/blog/2023/03/22/react-labs-what-we-have-been-working-on-march-2023200 HTML63 ms 115 kBHITReact Labs: What We've Been Working On – March 2023 – React
/images/docs/s_thinking-in-react_ui.png200 Image57 ms 25 kBHIT
/images/home/conf2021/xuan.jpg200 Image43 ms 786 BHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_state_child_clicked.dark.png&w=1080&q=75200 Image68 ms 17 kBHIT
/images/home/videos/documentary.webp200 Image72 ms 10 kBHIT
/reference/react/hooks200 HTML57 ms 220 kBHITBuilt-in React Hooks – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fuse_client_render_tree.png&w=1080&q=75200 Image211 ms29 kBHIT
/reference/react/act200 HTML61 ms 242 kBHITact – React
/reference/react/useContext200 HTML71 ms 389 kBHITuseContext – React
/blog/2020/12/21/data-fetching-with-react-server-components200 HTML111 ms65 kBHITIntroducing Zero-Bundle-Size React Server Components – React
/images/tutorial/codesandbox-devtools.png200 Image80 ms 38 kBHIT
/reference/react-dom/server/renderToNodeStream200 HTML59 ms 211 kBHITrenderToNodeStream – React
/images/home/videos/rn.jpg200 Image54 ms 13 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_tree.png&w=828&q=75200 Image55 ms 15 kBHIT
/images/home/conf2021/rick.jpg200 Image77 ms 1 kBHIT
/learn/reusing-logic-with-custom-hooks200 HTML74 ms 582 kBHITReusing Logic with Custom Hooks – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fuse_client_module_dependency.dark.png&w=1200&q=75200 Image232 ms45 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpassing_data_context_far.png&w=640&q=75200 Image55 ms 22 kBHIT
/fonts/Optimistic_Text_Arbc_W_Bd.woff2200 Font56 ms 29 kBHIT
/learn/rendering-lists200 HTML69 ms 263 kBHITRendering Lists – React
/blog/2022/06/15/react-labs-what-we-have-been-working-on-june-2022200 HTML56 ms 100 kBHITReact Labs: What We've Been Working On – June 2022 – React
/images/tutorial/empty-board.png200 Image77 ms 148 BHIT
/_next/static/j0OVEbBmW0hlpiqUhjMXe/_ssgManifest.js200 JS64 ms 154 BHIT
/images/home/videos/rsc.jpg200 Image43 ms 6 kBHIT
/_next/static/chunks/181-214845cf9287d64e.js200 JS69 ms 91 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_diff_same_pt1.png&w=1920&q=75200 Image60 ms 31 kBHIT
/reference/react-dom/client/hydrateRoot200 HTML76 ms 423 kBHIThydrateRoot – React
/learn/importing-and-exporting-components200 HTML57 ms 194 kBHITImporting and Exporting Components – React
https://www.googletagmanager.com/gtag/js?id=G-B1E83PJ3RT200 JS129 ms263 kB
/reference/react-dom/components/title200 HTML59 ms 229 kBHIT&lt;title&gt; – React
/images/home/conf2021/diego.jpg200 Image74 ms 1 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_data_child_clicked.dark.png&w=828&q=75200 Image57 ms 16 kBHIT
/learn/you-might-not-need-an-effect200 HTML88 ms 420 kBHITYou Might Not Need an Effect – React
/fonts/Optimistic_Display_Deva_W_Md.woff2200 Font90 ms 87 kBHIT
/reference/react-dom200 HTML62 ms 201 kBHITReact DOM APIs – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_diff_pt2.dark.png&w=828&q=75200 Image251 ms15 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpassing_data_lifting_state.png&w=1920&q=75200 Image47 ms 8 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fuse_client_module_dependency.dark.png&w=640&q=75200 Image178 ms23 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_data_child.dark.png&w=640&q=75200 Image56 ms 12 kBHIT
/fonts/Optimistic_Text_W_BdIt.woff2200 Font66 ms 26 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_state_child.dark.png&w=640&q=75200 Image44 ms 12 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpassing_data_lifting_state.dark.png&w=1920&q=75200 Image193 ms8 kBHIT
/fonts/Optimistic_Text_Cyrl_W_Rg.woff2200 Font76 ms 23 kBHIT
/_next/image?url=%2Fimages%2Fuwu.png&w=64&q=75200 Image42 ms 5 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_data_parent_clicked.png&w=640&q=75200 Image68 ms 22 kBHIT
/images/docs/illustrations/i_react-batching.png200 Image77 ms 97 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fwriting_jsx_sidebar.png&w=384&q=75200 Image45 ms 9 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_same_component.dark.png&w=1200&q=75200 Image193 ms35 kBHIT
/reference/react-dom/client/createRoot200 HTML144 ms435 kBHITcreateRoot – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_diff_position_p2.png&w=1080&q=75200 Image1.1 s 24 kBHIT
/reference/react-dom/client200 HTML98 ms 187 kBHITClient React DOM APIs – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fwriting_jsx_js.dark.png&w=750&q=75200 Image177 ms12 kBHIT
/images/docs/illustrations/i_render1.png200 Image58 ms 19 kBHIT
/reference/react/Children200 HTML74 ms 477 kBHITChildren – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_remove_component.png&w=640&q=75200 Image178 ms11 kBHIT
/images/home/conf2021/robert.jpg200 Image42 ms 1 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_diff_same_pt2.png&w=1920&q=75200 Image59 ms 31 kBHIT
/learn/choosing-the-state-structure200 HTML99 ms 490 kBHITChoosing the State Structure – React
/reference/react-dom/hooks200 HTML56 ms 192 kBHITBuilt-in React DOM Hooks – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_data_parent.png&w=640&q=75200 Image71 ms 19 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fwriting_jsx_sidebar.dark.png&w=384&q=75200 Image50 ms 9 kBHIT
/_next/static/chunks/pages/%5B%5B...markdownPath%5D%5D-11b0a336f223865f.js200 JS81 ms 10 kBHIT
/blog/2023/05/03/react-canaries200 HTML58 ms 103 kBHITReact Canaries: Enabling Incremental Feature Rollout Outside Meta – React
/images/tutorial/x-filled-square.png200 Image42 ms 477 BHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_increment.dark.png&w=1080&q=75200 Image222 ms15 kBHIT
/learn/start-a-new-react-project200 HTML62 ms 158 kBHITStart a New React Project – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_state_child_clicked.dark.png&w=640&q=75200 Image59 ms 13 kBHIT
/images/home/conf2021/aakansha.jpg200 Image43 ms 1 kBHIT
/images/home/community/react_conf_nat.webp200 Image66 ms 26 kBHIT
/reference/react/createElement200 HTML61 ms 259 kBHITcreateElement – React
https://legacy.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html200 HTML100 ms126 kBHIT
/images/home/conf2021/linton.jpg200 Image67 ms 1 kBHIT
/reference/react/createContext200 HTML58 ms 249 kBHITcreateContext – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fuse_client_render_tree.png&w=640&q=75200 Image55 ms 17 kBHIT
/fonts/Optimistic_Text_Viet_W_Bd.woff2200 Font60 ms 20 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_data_child.png&w=828&q=75200 Image57 ms 16 kBHIT
/images/docs/illustrations/i_import-export.svg200 Image58 ms 4 kBHIT
/reference/react/useDeferredValue200 HTML71 ms 352 kBHITuseDeferredValue – React
/learn/react-developer-tools200 HTML55 ms 108 kBHITReact Developer Tools – React
/fonts/Source-Code-Pro-Regular.woff2200 Font43 ms 10 kBHIT
/images/docs/react-devtools-standalone.png200 Image70 ms 63 kBHIT
/images/docs/react-devtools-extension.png200 Image72 ms 65 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fwriting_jsx_form.dark.png&w=384&q=75200 Image65 ms 10 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fmodule_dependency_tree.png&w=750&q=75200 Image192 ms19 kBHIT
/blog/2024/04/25/react-19200 HTML70 ms 294 kBHITReact 19 RC – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fgeneric_dependency_tree.png&w=1080&q=75200 Image203 ms25 kBHIT
/link/hydration-mismatch307 Redirect41 ms 205 B
/fonts/Optimistic_Display_Cyrl_W_Md.woff2200 Font87 ms 25 kBHIT
/community/team200 HTML58 ms 232 kBHITMeet the Team – React
/images/home/community/react_india_selfie.webp200 Image56 ms 36 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsebmarkbage.jpg&w=750&q=75200 Image246 ms21 kBHIT
/learn/reacting-to-input-with-state200 HTML90 ms 288 kBHITReacting to Input with State – React
/_next/image?url=%2Fimages%2Fteam%2Fsebsilbermann.jpg&w=1200&q=75200 Image290 ms67 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fseth.jpg&w=1920&q=75200 Image338 ms179 kBHIT
/images/docs/illustrations/i_declarative-ui-programming.png200 Image150 ms79 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fmofei-zhang.png&w=1200&q=75200 Image243 ms27 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fluna-wei.jpg&w=2048&q=75200 Image300 ms154 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Ftianyu.jpg&w=750&q=75200 Image242 ms16 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fmatt-carroll.png&w=828&q=75200 Image225 ms12 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Flesiutin.jpg&w=1920&q=75200 Image220 ms44 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjack-pope.jpg&w=3840&q=75200 Image326 ms269 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fnoahlemen.jpg&w=1920&q=75200 Image300 ms87 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Facdlite.jpg&w=640&q=75200 Image229 ms20 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fnoahlemen.jpg&w=3840&q=75200 Image279 ms87 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fgaearon.jpg&w=1080&q=75200 Image224 ms22 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsophiebits.jpg&w=3840&q=75200 Image231 ms57 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Facdlite.jpg&w=1920&q=75200 Image210 ms27 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjack-pope.jpg&w=1200&q=75200 Image313 ms269 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Flauren.jpg&w=750&q=75200 Image206 ms55 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fseth.jpg&w=640&q=75200 Image204 ms39 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fnoahlemen.jpg&w=1080&q=75200 Image245 ms65 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Frickhanlonii.jpg&w=1200&q=75200 Image243 ms31 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjosh.jpg&w=1200&q=75200 Image248 ms53 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjasonbonta.jpg&w=1920&q=75200 Image189 ms64 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fgaearon.jpg&w=750&q=75200 Image186 ms19 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsathya.jpg&w=640&q=75200 Image237 ms19 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Feli-white.jpg&w=2048&q=75200 Image226 ms40 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fgaearon.jpg&w=2048&q=75200 Image194 ms22 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjack-pope.jpg&w=1920&q=75200 Image323 ms269 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjack-pope.jpg&w=828&q=75200 Image397 ms143 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fresponding_to_input_flow.dark.png&w=750&q=75200 Image292 ms23 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjasonbonta.jpg&w=828&q=75200 Image234 ms39 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Flesiutin.jpg&w=640&q=75200 Image186 ms23 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Ftianyu.jpg&w=2048&q=75200 Image227 ms16 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsebsilbermann.jpg&w=3840&q=75200 Image210 ms67 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsebsilbermann.jpg&w=1080&q=75200 Image262 ms67 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Ftianyu.jpg&w=1200&q=75200 Image197 ms16 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsebmarkbage.jpg&w=2048&q=75200 Image223 ms23 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fmofei-zhang.png&w=828&q=75200 Image357 ms27 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fresponding_to_input_flow.png&w=750&q=75200 Image58 ms 22 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Flauren.jpg&w=828&q=75200 Image250 ms63 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsophiebits.jpg&w=750&q=75200 Image191 ms27 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsathya.jpg&w=1200&q=75200 Image180 ms19 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fseth.jpg&w=1200&q=75200 Image331 ms107 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjack-pope.jpg&w=640&q=75200 Image287 ms95 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fseth.jpg&w=3840&q=75200 Image324 ms179 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjoe.jpg&w=2048&q=75200 Image221 ms34 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjasonbonta.jpg&w=3840&q=75200 Image210 ms64 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fmofei-zhang.png&w=1920&q=75200 Image228 ms27 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fluna-wei.jpg&w=1080&q=75200 Image344 ms154 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjasonbonta.jpg&w=1200&q=75200 Image241 ms64 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsebmarkbage.jpg&w=1200&q=75200 Image191 ms23 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsathya.jpg&w=3840&q=75200 Image264 ms19 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fgaearon.jpg&w=1200&q=75200 Image188 ms22 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsathya.jpg&w=1080&q=75200 Image216 ms19 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjoe.jpg&w=1920&q=75200 Image185 ms34 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Flauren.jpg&w=640&q=75200 Image207 ms43 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Ftianyu.jpg&w=3840&q=75200 Image573 ms16 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Facdlite.jpg&w=2048&q=75200 Image222 ms27 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsebmarkbage.jpg&w=1920&q=75200 Image182 ms23 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Feli-white.jpg&w=640&q=75200 Image184 ms31 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fgaearon.jpg&w=3840&q=75200 Image206 ms22 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Flesiutin.jpg&w=2048&q=75200 Image211 ms44 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsebmarkbage.jpg&w=640&q=75200 Image192 ms18 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsebsilbermann.jpg&w=1920&q=75200 Image269 ms67 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Flesiutin.jpg&w=1080&q=75200 Image282 ms44 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fmofei-zhang.png&w=750&q=75200 Image189 ms25 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fmatt-carroll.png&w=750&q=75200 Image1.2 s 12 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fmatt-carroll.png&w=1200&q=75200 Image208 ms12 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjoe.jpg&w=1080&q=75200 Image187 ms34 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsophiebits.jpg&w=1080&q=75200 Image210 ms44 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsophiebits.jpg&w=640&q=75200 Image191 ms23 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fyuzhi.jpg&w=640&q=75200 Image211 ms42 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Ftianyu.jpg&w=640&q=75200 Image197 ms16 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Facdlite.jpg&w=750&q=75200 Image190 ms24 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Flauren.jpg&w=2048&q=75200 Image334 ms125 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fresponding_to_input_flow.png&w=1920&q=75200 Image60 ms 39 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Flauren.jpg&w=3840&q=75200 Image254 ms125 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fmofei-zhang.png&w=640&q=75200 Image219 ms20 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Frickhanlonii.jpg&w=2048&q=75200 Image195 ms31 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjasonbonta.jpg&w=750&q=75200 Image231 ms35 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsebsilbermann.jpg&w=640&q=75200 Image514 ms47 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Flesiutin.jpg&w=828&q=75200 Image323 ms36 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsebmarkbage.jpg&w=3840&q=75200 Image190 ms23 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fyuzhi.jpg&w=828&q=75200 Image201 ms61 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Flesiutin.jpg&w=1200&q=75200 Image242 ms44 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fmatt-carroll.png&w=1920&q=75200 Image256 ms12 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsophiebits.jpg&w=1200&q=75200 Image1 s 49 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Flauren.jpg&w=1920&q=75200 Image295 ms125 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Feli-white.jpg&w=3840&q=75200 Image196 ms40 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fyuzhi.jpg&w=1080&q=75200 Image370 ms89 kBHIT
/images/docs/illustrations/i_inputs1.png200 Image65 ms 13 kBHIT
/images/docs/illustrations/i_inputs2.png200 Image58 ms 32 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsebsilbermann.jpg&w=2048&q=75200 Image265 ms67 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fgaearon.jpg&w=1920&q=75200 Image287 ms22 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fnoahlemen.jpg&w=750&q=75200 Image203 ms36 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsebmarkbage.jpg&w=828&q=75200 Image194 ms23 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Frickhanlonii.jpg&w=828&q=75200 Image208 ms31 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fmatt-carroll.png&w=640&q=75200 Image227 ms10 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Flauren.jpg&w=1200&q=75200 Image298 ms108 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Frickhanlonii.jpg&w=1920&q=75200 Image199 ms31 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsebsilbermann.jpg&w=750&q=75200 Image265 ms58 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fmatt-carroll.png&w=2048&q=75200 Image206 ms12 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjosh.jpg&w=2048&q=75200 Image194 ms53 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fluna-wei.jpg&w=1200&q=75200 Image415 ms154 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fmofei-zhang.png&w=2048&q=75200 Image204 ms27 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjoe.jpg&w=640&q=75200 Image453 ms34 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjoe.jpg&w=3840&q=75200 Image178 ms34 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fyuzhi.jpg&w=3840&q=75200 Image285 ms229 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fyuzhi.jpg&w=2048&q=75200 Image329 ms229 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fseth.jpg&w=750&q=75200 Image234 ms51 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Feli-white.jpg&w=1080&q=75200 Image290 ms40 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fyuzhi.jpg&w=1920&q=75200 Image363 ms196 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fnoahlemen.jpg&w=640&q=75200 Image214 ms29 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjoe.jpg&w=828&q=75200 Image229 ms34 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsathya.jpg&w=750&q=75200 Image234 ms19 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fmatt-carroll.png&w=3840&q=75200 Image189 ms12 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Flesiutin.jpg&w=750&q=75200 Image231 ms31 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsathya.jpg&w=2048&q=75200 Image542 ms19 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Feli-white.jpg&w=750&q=75200 Image196 ms38 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Feli-white.jpg&w=1920&q=75200 Image474 ms40 kBHIT
/images/docs/illustrations/i_imperative-ui-programming.png200 Image82 ms 56 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fseth.jpg&w=2048&q=75200 Image296 ms179 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsathya.jpg&w=828&q=75200 Image263 ms19 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsophiebits.jpg&w=828&q=75200 Image214 ms31 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Facdlite.jpg&w=1080&q=75200 Image212 ms27 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjasonbonta.jpg&w=640&q=75200 Image217 ms29 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsebsilbermann.jpg&w=828&q=75200 Image408 ms67 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fluna-wei.jpg&w=3840&q=75200 Image345 ms154 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsophiebits.jpg&w=1920&q=75200 Image199 ms57 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fseth.jpg&w=828&q=75200 Image267 ms60 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fmofei-zhang.png&w=3840&q=75200 Image171 ms27 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjoe.jpg&w=750&q=75200 Image210 ms34 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsebmarkbage.jpg&w=1080&q=75200 Image187 ms23 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fnoahlemen.jpg&w=828&q=75200 Image226 ms42 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjoe.jpg&w=1200&q=75200 Image198 ms34 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjosh.jpg&w=3840&q=75200 Image216 ms53 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjosh.jpg&w=1080&q=75200 Image197 ms53 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Feli-white.jpg&w=828&q=75200 Image247 ms40 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fgaearon.jpg&w=828&q=75200 Image211 ms22 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fyuzhi.jpg&w=1200&q=75200 Image336 ms102 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fluna-wei.jpg&w=1920&q=75200 Image281 ms154 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Frickhanlonii.jpg&w=3840&q=75200 Image220 ms31 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Flauren.jpg&w=1080&q=75200 Image393 ms92 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Ftianyu.jpg&w=1080&q=75200 Image209 ms16 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fluna-wei.jpg&w=640&q=75200 Image308 ms93 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fseth.jpg&w=1080&q=75200 Image306 ms91 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fgaearon.jpg&w=640&q=75200 Image192 ms17 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fluna-wei.jpg&w=828&q=75200 Image372 ms154 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Ftianyu.jpg&w=828&q=75200 Image200 ms16 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Frickhanlonii.jpg&w=1080&q=75200 Image240 ms31 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Facdlite.jpg&w=828&q=75200 Image325 ms27 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fmatt-carroll.png&w=1080&q=75200 Image212 ms12 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjosh.jpg&w=1920&q=75200 Image1.2 s 53 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjack-pope.jpg&w=1080&q=75200 Image328 ms212 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjosh.jpg&w=828&q=75200 Image227 ms53 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Feli-white.jpg&w=1200&q=75200 Image430 ms40 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fnoahlemen.jpg&w=2048&q=75200 Image289 ms87 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjasonbonta.jpg&w=2048&q=75200 Image204 ms64 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsathya.jpg&w=1920&q=75200 Image170 ms19 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fmofei-zhang.png&w=1080&q=75200 Image188 ms27 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Ftianyu.jpg&w=1920&q=75200 Image191 ms16 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjosh.jpg&w=750&q=75200 Image203 ms53 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjosh.jpg&w=640&q=75200 Image211 ms53 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Frickhanlonii.jpg&w=640&q=75200 Image210 ms23 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Frickhanlonii.jpg&w=750&q=75200 Image882 ms27 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjack-pope.jpg&w=2048&q=75200 Image465 ms269 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fnoahlemen.jpg&w=1200&q=75200 Image383 ms87 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Facdlite.jpg&w=1200&q=75200 Image264 ms27 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fresponding_to_input_flow.dark.png&w=1920&q=75200 Image239 ms40 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Facdlite.jpg&w=3840&q=75200 Image234 ms27 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fsophiebits.jpg&w=2048&q=75200 Image240 ms57 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_diff_same_pt1.dark.png&w=1920&q=75200 Image183 ms29 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_dom_tree.dark.png&w=1080&q=75200 Image56 ms 22 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fluna-wei.jpg&w=750&q=75200 Image297 ms123 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fjack-pope.jpg&w=750&q=75200 Image364 ms122 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Flesiutin.jpg&w=3840&q=75200 Image281 ms44 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fsharing_data_parent.dark.png&w=640&q=75200 Image58 ms 16 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_dif…position_p2.dark.png&w=1080&q=75200 Image248 ms24 kBHIT
/_next/image?url=%2Fimages%2Fteam%2Fyuzhi.jpg&w=750&q=75200 Image212 ms53 kBHIT
/blog/2022/03/29/react-v18200 HTML59 ms 264 kBHITReact v18.0 – React
/reference/react/useLayoutEffect200 HTML98 ms 302 kBHITuseLayoutEffect – React
/_next/image?url=%2Fimages%2Fteam%2Fjasonbonta.jpg&w=1080&q=75200 Image205 ms54 kBHIT
/fonts/Optimistic_Display_Arbc_W_SBd.woff2200 Font65 ms 29 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_diff_same_pt2.png&w=828&q=75200 Image176 ms19 kBHIT
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fpreserving_state_diff_position_p3.dark.png&w=640&q=75200 Image181 ms17 kBHIT
/community/conferences200 HTML70 ms 562 kBHITReact Conferences – React
/learn/your-first-component200 HTML67 ms 195 kBHITYour First Component – React
/_next/image?url=%2Fimages%2Fdocs%2Fdiagrams%2Fgeneric_render_tree.dark.png&w=1080&q=75200 Image175 ms33 kBHIT
/images/docs/illustrations/i_browser-paint.png200 Image75 ms 71 kBHIT
No rows found, please edit your search term.

Best practices

Found 10 row(s).
Analysis nameOKNoticeWarningCritical
Large inline SVGs (> 5120 B)8105 0
Invalid inline SVGs86000
Duplicate inline SVGs (> 5 and > 1024 B)8506 0
DOM depth (> 30)16401 0
Heading structure1750326 1
Title uniqueness (> 10%)163000
Description uniqueness (> 10%)101 0
Brotli support163000
WebP support331000
AVIF support001 0
No rows found, please edit your search term.

Large inline SVGs

SeverityOccursDetailAffected URLs (max 5)
warning16420 kB URL 1, URL 2, URL 3, URL 4, URL 5
warning114 kB /
warning15 kB /
warning16 kB /
warning16 kB https://legacy.reactjs.org/blog/2020/09/-jsx-transform.html

Duplicate inline SVGs

Found 22 row(s).
SeverityOccursDetailAffected URLs (max 5)
warning9224x SVG (3 kB): - This feature is available in the latest CanaryURL 1, URL 2, URL 3, URL 4, URL 5
warning116x SVG (2 kB): URL 1, URL 2, URL 3, URL 4, URL 5
warning116x SVG (2 kB): URL 1, URL 2, URL 3, URL 4, URL 5
warning67x SVG (2 kB): URL 1, URL 2, URL 3, URL 4, URL 5
warning67x SVG (2 kB): URL 1, URL 2, URL 3, URL 4, URL 5
warning58x SVG (2 kB): URL 1, URL 2, URL 3, URL 4, URL 5
warning58x SVG (2 kB): URL 1, URL 2, URL 3, URL 4, URL 5
warning410x SVG (2 kB): URL 1, URL 2, URL 3, URL 4
warning411x SVG (2 kB): URL 1, URL 2, URL 3, URL 4
warning411x SVG (2 kB): URL 1, URL 2, URL 3, URL 4
warning49x SVG (2 kB): URL 1, URL 2, URL 3, URL 4
warning49x SVG (2 kB): URL 1, URL 2, URL 3, URL 4
warning310x SVG (2 kB): URL 1, URL 2, URL 3
warning214x SVG (2 kB): URL 1, URL 2
warning214x SVG (2 kB): URL 1, URL 2
warning16x SVG (1 kB): /reference/react/Component
warning16x SVG (2 kB): /learn/react-compiler
warning116x SVG (2 kB): /learn/reusing-logic-with-custom-hooks
warning116x SVG (2 kB): /learn/reusing-logic-with-custom-hooks
warning113x SVG (2 kB): /learn/choosing-the-state-structure
warning113x SVG (2 kB): /learn/choosing-the-state-structure
warning117x SVG (2 kB): /community/team
No rows found, please edit your search term.

Invalid inline SVGs

No problems found.


Missing quotes on attributes

No problems found.


DOM depth

SeverityOccursDetailAffected URLs (max 5)
warning1The DOM depth exceeds the warning limit: 30. Found depth: 30./

Heading structure

SeverityOccursDetailAffected URLs (max 5)
critical1Multiple <h1> headings found./
warning149Heading structure is skipping levels: found an <h3> without a previous higher heading.URL 1, URL 2, URL 3, URL 4, URL 5
warning92Heading structure is skipping levels: found an <h3> after an <h1>.URL 1, URL 2, URL 3, URL 4, URL 5
warning51Heading structure is skipping levels: found an <h5> after an <h3>.URL 1, URL 2, URL 3, URL 4, URL 5
warning30Heading structure is skipping levels: found an <h4> after an <h2>.URL 1, URL 2, URL 3, URL 4, URL 5
warning15Heading structure is skipping levels: found an <h5> after an <h2>.URL 1, URL 2, URL 3, URL 4, URL 5
warning1Heading structure is skipping levels: found an <h5> after an <h1>./learn/start-a-new-react-project

Non-clickable phone numbers

No problems found.


Title uniqueness

No problems found.


Description uniqueness

No problems found.

Accessibility

Analysis nameOKNoticeWarningCritical
Missing image alt attributes142032 0
Missing aria labels163604860 2
Missing roles004 0
Missing html lang attribute1000

Valid HTML

No problems found.


Missing image alt attributes

SeverityOccursDetailAffected URLs (max 5)
warning23<img class="h-8 w-8 border-2 shadow-md border-gray-70 object-cover rounded-full" ***>/
warning6<img class="text-primary" ***>/learn/state-as-a-snapshot
warning2<img class="max-w-[calc(min(700px,100%))]" ***>/learn/thinking-in-react
warning1<img class="w-full object-cover" ***>/

Missing form labels

No problems found.


Missing aria labels

Found 138 row(s).
SeverityOccursDetailAffected URLs (max 5)
critical1<input id=":R1sq8q6:" class="flex ps-11 py-4 h-10 w-full text-start bg-secondary-button outline-none betterhover:hover:bg-opacity-80 pointer items-center text-primary rounded-full align-middle text-base" ***>/
critical1<input id=":R6sqaq6:" class="flex ps-11 py-4 h-10 w-full text-start bg-secondary-button outline-none betterhover:hover:bg-opacity-80 pointer items-center text-primary rounded-full align-middle text-base" ***>/
warning8787<a class="p-2 pe-2 w-full rounded-none lg:rounded-e-2xl text-start hover:bg-gray-5 dark:hover:bg-gray-80 relative flex items-center justify-between text-sm ps-6 ps-5 text-base text-secondary dark:text-secondary-dark" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning5498<a class="inline text-link dark:text-link-dark border-b border-link border-opacity-0 hover:border-opacity-100 duration-100 ease-in transition leading-normal" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning2608<a class="border-b inline-block border-transparent text-sm text-primary dark:text-primary-dark hover:border-gray-***" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning1578<a class="p-2 pe-2 w-full rounded-none lg:rounded-e-2xl text-start hover:bg-gray-5 dark:hover:bg-gray-80 relative flex items-center justify-between ps-5 text-base font-bold text-primary dark:text-primary-dark" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning1394<a class="text-secondary dark:text-secondary-dark block hover:text-link dark:hover:text-link-dark leading-normal py-***" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning811<button class=" sp-tab-button" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning492<a class="active:scale-95 transition-transform w-full text-center outline-link py-1.5 px-1.5 xs:px-3 sm:px-4 rounded-full capitalize whitespace-nowrap hover:bg-primary/5 hover:dark:bg-primary-dark/***" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning489<a class="border-b inline-block border-transparent text-md text-secondary dark:text-secondary-dark my-2 font-bold hover:border-gray-***" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning473<a class="text-sm text-primary dark:text-primary-dark inline-flex items-center hover:text-link duration-100 ease-in transition mx-1 ms-2 md:ms-***" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning473<button class="text-sm text-primary dark:text-primary-dark inline-flex items-center hover:text-link duration-100 ease-in transition mx-***" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning356<button class="sandpack-expand flex text-base justify-between dark:border-card-dark bg-wash dark:bg-card-dark items-center z-10 p-1 w-full order-2 xl:order-last border-b-1 relative top-***" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning278<a class="text-link dark:text-link-dark text-sm tracking-wide font-bold uppercase me-1 hover:underline" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning163<a ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning163<a class="active:scale-95 overflow-hidden transition-transform relative items-center text-primary dark:text-primary-dark p-1 whitespace-nowrap outline-link rounded-full 3xl:rounded-xl inline-flex text-lg font-normal gap-***" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning163<a class=" flex py-2 flex-column justify-center items-center text-gray-50 dark:text-gray-30 hover:text-link hover:dark:text-link-dark hover:underline text-sm ms-1 cursor-pointer" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning163<a class="ms-***" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning163<button class="flex 3xl:w-[56rem] 3xl:mx-0 relative ps-4 pe-1 py-1 h-10 bg-gray-30/20 dark:bg-gray-40/20 outline-none focus:outline-link betterhover:hover:bg-opacity-80 pointer items-center text-start w-full text-gray-30 rounded-full align-middle text-base" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning160<a class="active:scale-95 transition-transform w-full text-center outline-link py-1.5 px-1.5 xs:px-3 sm:px-4 rounded-full capitalize whitespace-nowrap bg-highlight dark:bg-highlight-dark text-link dark:text-link-dark" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning150<a class="flex gap-x-4 md:gap-x-6 items-center w-full md:min-w-80 md:w-fit md:max-w-md px-4 md:px-5 py-6 border-2 border-transparent text-base leading-base text-link dark:text-link-dark rounded-lg group focus:text-link dark:focus:text-link-dark focus:bg-highlight focus:border-link dark:focus:bg-highlight-dark dark:focus:border-link-dark focus:border-opacity-100 focus:border-2 focus:ring-1 focus:ring-offset-4 focus:ring-blue-40 active:ring-0 active:ring-offset-0 hover:bg-gray-5 dark:hover:bg-gray-80 flex-row-reverse justify-self-end text-end" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning150<a class="flex gap-x-4 md:gap-x-6 items-center w-full md:min-w-80 md:w-fit md:max-w-md px-4 md:px-5 py-6 border-2 border-transparent text-base leading-base text-link dark:text-link-dark rounded-lg group focus:text-link dark:focus:text-link-dark focus:bg-highlight focus:border-link dark:focus:bg-highlight-dark dark:focus:border-link-dark focus:border-opacity-100 focus:border-2 focus:ring-1 focus:ring-offset-4 focus:ring-blue-40 active:ring-0 active:ring-offset-0 hover:bg-gray-5 dark:hover:bg-gray-***" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning147<a class="text-link dark:text-link-dark font-bold block hover:text-link dark:hover:text-link-dark leading-normal py-***" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning124<a class="p-2 pe-2 w-full rounded-none lg:rounded-e-2xl text-start hover:bg-gray-5 dark:hover:bg-gray-80 relative flex items-center justify-between text-sm ps-6 ps-5 text-base text-link dark:text-link-dark bg-highlight dark:bg-highlight-dark border-blue-40 hover:bg-highlight hover:text-link dark:hover:bg-highlight-dark dark:hover:text-link-dark" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning107<button class="py-2 me-4 text-base border-b-4 duration-100 ease-in transition whitespace-nowrap text-ellipsis">URL 1, URL 2, URL 3, URL 4, URL 5
warning69<button class="bg-purple-50 border-purple-50 hover:bg-purple-40 focus:bg-purple-50 active:bg-purple-50 text-base leading-tight font-bold rounded-full py-2 px-4 focus:outline focus:outline-offset-2 focus:outline-link dark:focus:outline-link-dark inline-flex items-center my-1 bg-link border-link text-white hover:bg-link focus:bg-link active:bg-link">URL 1, URL 2, URL 3, URL 4, URL 5
warning40<button class="me-2 text-base leading-tight font-bold rounded-full py-2 px-4 focus:outline focus:outline-offset-2 focus:outline-link dark:focus:outline-link-dark inline-flex items-center my-1 bg-transparent text-primary dark:text-primary-dark active:text-primary shadow-secondary-button-stroke dark:shadow-secondary-button-stroke-dark hover:bg-gray-40/5 active:bg-gray-40/10 hover:dark:bg-gray-60/5 active:dark:bg-gray-60/***">URL 1, URL 2, URL 3, URL 4, URL 5
warning33<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R9imcq6:" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning31<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R9iicq6:" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning31<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R9ikcq6:" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning28<a class="outline-link dark:outline-link outline-offset-4 group flex flex-col flex-1 gap-0.***" ***>/
warning27<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R9iocq6:" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning25<button class="py-2 me-4 text-base border-b-4 duration-100 ease-in transition whitespace-nowrap text-ellipsis text-link border-link hover:text-link dark:text-link-dark dark:border-link-dark dark:hover:text-link-dark">URL 1, URL 2, URL 3, URL 4, URL 5
warning25<button class="bg-link dark:bg-link-dark text-base leading-tight font-bold rounded-full py-2 px-4 focus:outline focus:outline-offset-2 focus:outline-link dark:focus:outline-link-dark inline-flex items-center my-1 bg-link border-link text-white hover:bg-link focus:bg-link active:bg-link">URL 1, URL 2, URL 3, URL 4, URL 5
warning24<button class="py-2 me-4 text-base border-b-4 duration-100 ease-in transition whitespace-nowrap text-ellipsis text-purple-50 border-purple-50 hover:text-purple-50 dark:text-purple-30 dark:border-purple-30 dark:hover:text-purple-***">URL 1, URL 2, URL 3, URL 4, URL 5
warning24<button class="bg-purple-50 border-purple-50 hover:bg-purple-50 focus:bg-purple-50 active:bg-purple-50 text-base leading-tight font-bold rounded-full py-2 px-4 focus:outline focus:outline-offset-2 focus:outline-link dark:focus:outline-link-dark inline-flex items-center my-1 bg-link border-link text-white hover:bg-link focus:bg-link active:bg-link">URL 1, URL 2, URL 3, URL 4, URL 5
warning22<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R9iqcq6:" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning21<a class="p-2 pe-2 w-full rounded-none lg:rounded-e-2xl text-start hover:bg-gray-5 dark:hover:bg-gray-80 relative flex items-center justify-between ps-5 text-base font-bold text-base text-link dark:text-link-dark bg-highlight dark:bg-highlight-dark border-blue-40 hover:bg-highlight hover:text-link dark:hover:bg-highlight-dark dark:hover:text-link-dark" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning19<a class="outline-link dark:outline-link outline-offset-2 aspect-video w-32 xs:w-36 select-none flex-col shadow-inner-border rounded-lg flex items-center overflow-hidden justify-center align-middle text-white/50 bg-cover bg-white bg-[conic-gradient(at_top_right,_var(--tw-gradient-stops))] from-gray-80 via-gray-95 to-gray-70 hover:opacity-95 transition-opacity" ***>/
warning19<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:Rj58cq6:" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning19<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:Rj5acq6:" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning19<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:Rj5ecq6:" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning19<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R4pacq6:" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning18<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R4pccq6:" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning17<a class="block h-full w-full rounded-2xl outline-none focus:outline-none focus-visible:outline focus-visible:outline-link focus:outline-offset-2 focus-visible:dark:focus:outline-link-dark" ***>URL 1, URL 2
warning17<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:Rj52cq6:" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning17<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:Rj54cq6:" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning17<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:Rj5ccq6:" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning16<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:Rj56cq6:" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning15<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:Rj5gcq6:" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning14<a class="text-link dark:text-link-dark" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning12<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:Rj5icq6:" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning12<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R9iscq6:" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning12<button class="w-full text-start text-primary-dark dark:text-primary-dark ">URL 1, URL 2, URL 3, URL 4
warning10<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:Rj5kcq6:" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning9<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R4pecq6:" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning9<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R2cmcq6:" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning5<a class="outline-link dark:outline-link outline-offset-2 aspect-video w-32 xs:w-36 select-none flex-col shadow-inner-border rounded-lg flex items-center overflow-hidden justify-center align-middle text-white/50 bg-cover bg-white bg-[conic-gradient(at_top_right,_var(--tw-gradient-stops))] hover:opacity-95 transition-opacity" ***>/
warning5<a class="focus:outline-none focus-visible:outline focus-visible:outline-link focus:outline-offset-2 focus-visible:dark:focus:outline-link-dark group cursor-pointer w-auto justify-center inline-flex font-bold items-center mt-10 outline-none hover:bg-gray-40/5 active:bg-gray-40/10 hover:dark:bg-gray-60/5 active:dark:bg-gray-60/10 leading-tight hover:bg-opacity-80 text-lg py-2.5 rounded-full px-4 sm:px-6 ease-in-out shadow-secondary-button-stroke dark:shadow-secondary-button-stroke-dark text-primary dark:text-primary-dark" ***>/
warning5<a class="text-sm text-primary dark:text-primary-dark inline-flex items-center hover:text-link duration-100 ease-in transition mx-1 ml-2 md:ml-***" ***>/learn/typescript
warning5<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R4pd38cq6:" ***>URL 1, URL 2, URL 3, URL 4, URL 5
warning4<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:Rj5mcq6:" ***>URL 1, URL 2, URL 3, URL 4
warning4<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R9iucq6:" ***>URL 1, URL 2, URL 3, URL 4
warning3<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R2cmhkcq6:" ***>URL 1, URL 2, URL 3
warning3<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R2cmhmcq6:" ***>URL 1, URL 2, URL 3
warning3<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R4pf3acq6:" ***>URL 1, URL 2, URL 3
warning3<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R4pd34cq6:" ***>URL 1, URL 2, URL 3
warning3<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R4pd3ccq6:" ***>URL 1, URL 2, URL 3
warning2<a class="outline-link dark:outline-link outline-offset-2 aspect-video w-32 xs:w-36 select-none flex-col shadow-inner-border rounded-lg flex items-center overflow-hidden justify-center align-middle text-white/50 bg-cover bg-white bg-[conic-gradient(at_top_right,_var(--tw-gradient-stops))] from-yellow-50 via-blue-50 to-purple-***" ***>/
warning2<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R9iq6ocq6:" ***>URL 1, URL 2
warning2<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R2cmhicq6:" ***>URL 1, URL 2
warning2<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R4pd3ecq6:" ***>URL 1, URL 2
warning2<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R9iq6mcq6:" ***>URL 1, URL 2
warning2<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R4pd29cq6:" ***>URL 1, URL 2
warning2<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R4pf38cq6:" ***>URL 1, URL 2
warning1<a class="outline-link dark:outline-link outline-offset-2 aspect-video w-32 xs:w-36 select-none flex-col shadow-inner-border rounded-lg flex items-center overflow-hidden justify-center align-middle text-white/50 bg-cover bg-white bg-[conic-gradient(at_top_right,_var(--tw-gradient-stops))] from-yellow-50 via-red-50 to-purple-***" ***>/
warning1<a class="outline-link dark:outline-link outline-offset-2 aspect-video w-32 xs:w-36 select-none flex-col shadow-inner-border rounded-lg flex items-center overflow-hidden justify-center align-middle text-white/50 bg-cover bg-white bg-[conic-gradient(at_top_right,_var(--tw-gradient-stops))] from-yellow-50 via-green-50 to-purple-***" ***>/
warning1<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R9il89cq6:" ***>/learn/preserving-and-resetting-state
warning1<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R9inadcq6:" ***>/learn/preserving-and-resetting-state
warning1<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R4pcvcq6:" ***>/reference/react-dom/components/link
warning1<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R4pdfcq6:" ***>/reference/react-dom/components/link
warning1<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R4pdtcq6:" ***>/reference/react-dom/components/link
warning1<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R4pe9cq6:" ***>/reference/react-dom/components/link
warning1<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R9iq6gcq6:" ***>/learn/conditional-rendering
warning1<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:Rj5ocq6:" ***>/learn/tutorial-tic-tac-toe
warning1<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:Rj5qcq6:" ***>/learn/tutorial-tic-tac-toe
warning1<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:Rj5scq6:" ***>/learn/tutorial-tic-tac-toe
warning1<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R2cn3cq6:" ***>/reference/react-dom/components/style
warning1<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R16b8qcq6:" ***>/reference/react/useActionState
warning1<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R16bkp3cq6:" ***>/learn/extracting-state-logic-into-a-reducer
warning1<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R9ip3ccq6:" ***>/learn/queueing-a-series-of-state-updates
warning1<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R9iq62cq6:" ***>/reference/react/useEffect
warning1<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R9iq64cq6:" ***>/reference/react/useEffect
warning1<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:Rj5i6ccq6:" ***>/reference/react/useEffect
warning1<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R4pd32cq6:" ***>/reference/react/useState
warning1<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R4pd36cq6:" ***>/reference/react/useState
warning1<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R4pbncq6:" ***>/reference/react-dom/components/script
warning1<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R4pc7cq6:" ***>/reference/react-dom/components/script
warning1<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:R9inh5cq6:" ***>/learn/manipulating-the-dom-with-refs
warning1<button class="absolute top-0 start-[2px]" id="headlessui-listbox-button-:Rj5599cq6:" ***>/learn/manipulating-the-dom-with-refs
You have reached the limit of 100 rows as a protection against very large output or exhausted memory.
No rows found, please edit your search term.

Missing roles

SeverityOccursDetailAffected URLs (max 5)
warning163<nav class="duration-300 backdrop-filter backdrop-blur-lg backdrop-saturate-200 transition-shadow bg-opacity-90 items-center w-full flex justify-between bg-wash dark:bg-wash-dark dark:bg-opacity-95 px-1.5 lg:pe-5 lg:ps-4 z-***">URL 1, URL 2, URL 3, URL 4, URL 5
warning163<main class="min-w-0 isolate">URL 1, URL 2, URL 3, URL 4, URL 5
warning163<footer class="text-secondary dark:text-secondary-dark">URL 1, URL 2, URL 3, URL 4, URL 5
warning148<aside class="lg:grow flex-col w-full pb-8 lg:pb-0 lg:max-w-custom-xs z-10 hidden lg:block">URL 1, URL 2, URL 3, URL 4, URL 5

Missing html lang attribute

No problems found.

Security

Found 10 row(s).
HeaderOKNoticeWarningCriticalRecommendation
X-XSS-Protection000164X-XSS-Protection header is not set. It enables browser's built-in defenses against XSS attacks.
Content-Security-Policy000164Content-Security-Policy header is not set. It restricts resources the page can load and prevents XSS attacks.
Access-Control-Allow-Origin001640Access-Control-Allow-Origin is set to '*' which allows any origin to access the resource. This can be a security risk.
X-Frame-Options001640X-Frame-Options header is not set. It prevents clickjacking attacks when set to 'deny' or 'sameorigin.
X-Content-Type-Options001640X-Content-Type-Options header is not set. It stops MIME type sniffing and mitigates content type attacks.
Referrer-Policy001640Referrer-Policy header is not set. It controls referrer header sharing and enhances privacy and security.
Feature-Policy001640Feature-Policy header is not set. It allows enabling/disabling browser APIs and features for security. Not important if Permissions-Policy is set.
Permissions-Policy001640Permissions-Policy header is not set. It allows enabling/disabling browser APIs and features for security.
Server016400Server header is set to 'Vercel'. It is better not to reveal used technologies.
Strict-Transport-Security164000
No rows found, please edit your search term.

Security headers

SeverityOccursDetailAffected URLs (max 5)
critical164X-XSS-Protection header is not set. It enables browser's built-in defenses against XSS attacks.URL 1, URL 2, URL 3, URL 4, URL 5
critical164Content-Security-Policy header is not set. It restricts resources the page can load and prevents XSS attacks.URL 1, URL 2, URL 3, URL 4, URL 5
warning164Access-Control-Allow-Origin is set to '*' which allows any origin to access the resource. This can be a security risk.URL 1, URL 2, URL 3, URL 4, URL 5
warning164X-Frame-Options header is not set. It prevents clickjacking attacks when set to 'deny' or 'sameorigin.URL 1, URL 2, URL 3, URL 4, URL 5
warning164X-Content-Type-Options header is not set. It stops MIME type sniffing and mitigates content type attacks.URL 1, URL 2, URL 3, URL 4, URL 5
warning164Referrer-Policy header is not set. It controls referrer header sharing and enhances privacy and security.URL 1, URL 2, URL 3, URL 4, URL 5
warning164Feature-Policy header is not set. It allows enabling/disabling browser APIs and features for security. Not important if Permissions-Policy is set.URL 1, URL 2, URL 3, URL 4, URL 5
warning164Permissions-Policy header is not set. It allows enabling/disabling browser APIs and features for security.URL 1, URL 2, URL 3, URL 4, URL 5
notice164Server header is set to 'Vercel'. It is better not to reveal used technologies.URL 1, URL 2, URL 3, URL 4, URL 5

TOP non-unique titles

Nothing to report.


TOP non-unique descriptions

Count 🔽Description
162

SEO metadata

Found 163 row(s).
URL 🔼IndexingTitleH1DescriptionKeywords
/AllowedReactReactReact is the library for web and native user interfaces. Build user interfaces out of individual pieces called components written in JavaScript. React is designed to let you seamlessly combine components written by independent people, teams, and organizations.
/blogAllowedReact Blog – ReactReact Blog
/blog/2020/12/21/data-fetching-with-react-server-componentsAllowedIntroducing Zero-Bundle-Size React Server Components – ReactIntroducing Zero-Bundle-Size React Server Components
/blog/2021/06/08/the-plan-for-react-18AllowedThe Plan for React 18 – ReactThe Plan for React 18
/blog/2021/12/17/react-conf-2021-recapAllowedReact Conf 2021 Recap – ReactReact Conf 2021 Recap
/blog/2022/03/08/react-18-upgrade-guideAllowedHow to Upgrade to React 18 – ReactHow to Upgrade to React 18
/blog/2022/03/29/react-v18AllowedReact v18.0 – ReactReact v18.0
/blog/2022/06/15/react-labs-what-we-have-been-working-on-june-2022AllowedReact Labs: What We've Been Working On – June 2022 – ReactReact Labs: What We've Been Working On – June 2022
/blog/2023/03/16/introducing-react-devAllowedIntroducing react.dev – ReactIntroducing react.dev
/blog/2023/03/22/react-labs-what-we-have-been-working-on-march-2023AllowedReact Labs: What We've Been Working On – March 2023 – ReactReact Labs: What We've Been Working On – March 2023
/blog/2023/05/03/react-canariesAllowedReact Canaries: Enabling Incremental Feature Rollout Outside Meta – ReactReact Canaries: Enabling Incremental Feature Rollout Outside Meta
/blog/2024/02/15/react-labs-what-we-have-been-working-on-february-2024AllowedReact Labs: What We've Been Working On – February 2024 – ReactReact Labs: What We've Been Working On – February 2024
/blog/2024/04/25/react-19AllowedReact 19 RC – ReactReact 19 RC
/blog/2024/04/25/react-19-upgrade-guideAllowedReact 19 RC Upgrade Guide – ReactReact 19 RC Upgrade Guide
/blog/2024/05/22/react-conf-2024-recapAllowedReact Conf 2024 Recap – ReactReact Conf 2024 Recap
/communityAllowedReact Community – ReactReact Community
/community/acknowledgementsAllowedAcknowledgements – ReactAcknowledgements
/community/conferencesAllowedReact Conferences – ReactReact Conferences
/community/docs-contributorsAllowedDocs Contributors – ReactDocs Contributors
/community/meetupsAllowedReact Meetups – ReactReact Meetups
/community/teamAllowedMeet the Team – ReactMeet the Team
/community/translationsAllowedTranslations – ReactTranslations
/community/versioning-policyAllowedVersioning Policy – ReactVersioning Policy
/community/videosAllowedReact Videos – ReactReact Videos
/learnAllowedQuick Start – ReactQuick Start
/learn/add-react-to-an-existing-projectAllowedAdd React to an Existing Project – ReactAdd React to an Existing Project
/learn/adding-interactivityAllowedAdding Interactivity – ReactAdding Interactivity
/learn/choosing-the-state-structureAllowedChoosing the State Structure – ReactChoosing the State Structure
/learn/conditional-renderingAllowedConditional Rendering – ReactConditional Rendering
/learn/describing-the-uiAllowedDescribing the UI – ReactDescribing the UI
/learn/editor-setupAllowedEditor Setup – ReactEditor Setup
/learn/escape-hatchesAllowedEscape Hatches – ReactEscape Hatches
/learn/extracting-state-logic-into-a-reducerAllowedExtracting State Logic into a Reducer – ReactExtracting State Logic into a Reducer
/learn/importing-and-exporting-componentsAllowedImporting and Exporting Components – ReactImporting and Exporting Components
/learn/installationAllowedInstallation – ReactInstallation
/learn/javascript-in-jsx-with-curly-bracesAllowedJavaScript in JSX with Curly Braces – ReactJavaScript in JSX with Curly Braces
/learn/keeping-components-pureAllowedKeeping Components Pure – ReactKeeping Components Pure
/learn/lifecycle-of-reactive-effectsAllowedLifecycle of Reactive Effects – ReactLifecycle of Reactive Effects
/learn/managing-stateAllowedManaging State – ReactManaging State
/learn/manipulating-the-dom-with-refsAllowedManipulating the DOM with Refs – ReactManipulating the DOM with Refs
/learn/passing-data-deeply-with-contextAllowedPassing Data Deeply with Context – ReactPassing Data Deeply with Context
/learn/passing-props-to-a-componentAllowedPassing Props to a Component – ReactPassing Props to a Component
/learn/preserving-and-resetting-stateAllowedPreserving and Resetting State – ReactPreserving and Resetting State
/learn/queueing-a-series-of-state-updatesAllowedQueueing a Series of State Updates – ReactQueueing a Series of State Updates
/learn/react-compilerAllowedReact Compiler – ReactReact Compiler
/learn/react-developer-toolsAllowedReact Developer Tools – ReactReact Developer Tools
/learn/reacting-to-input-with-stateAllowedReacting to Input with State – ReactReacting to Input with State
/learn/referencing-values-with-refsAllowedReferencing Values with Refs – ReactReferencing Values with Refs
/learn/removing-effect-dependenciesAllowedRemoving Effect Dependencies – ReactRemoving Effect Dependencies
/learn/render-and-commitAllowedRender and Commit – ReactRender and Commit
/learn/rendering-listsAllowedRendering Lists – ReactRendering Lists
/learn/responding-to-eventsAllowedResponding to Events – ReactResponding to Events
/learn/reusing-logic-with-custom-hooksAllowedReusing Logic with Custom Hooks – ReactReusing Logic with Custom Hooks
/learn/scaling-up-with-reducer-and-contextAllowedScaling Up with Reducer and Context – ReactScaling Up with Reducer and Context
/learn/separating-events-from-effectsAllowedSeparating Events from Effects – ReactSeparating Events from Effects
/learn/sharing-state-between-componentsAllowedSharing State Between Components – ReactSharing State Between Components
/learn/start-a-new-react-projectAllowedStart a New React Project – ReactStart a New React Project
/learn/state-a-components-memoryAllowedState: A Component's Memory – ReactState: A Component's Memory
/learn/state-as-a-snapshotAllowedState as a Snapshot – ReactState as a Snapshot
/learn/synchronizing-with-effectsAllowedSynchronizing with Effects – ReactSynchronizing with Effects
/learn/thinking-in-reactAllowedThinking in React – ReactThinking in React
/learn/tutorial-tic-tac-toeAllowedTutorial: Tic-Tac-Toe – ReactTutorial: Tic-Tac-Toe
/learn/typescriptAllowedUsing TypeScript – ReactUsing TypeScript
/learn/understanding-your-ui-as-a-treeAllowedUnderstanding Your UI as a Tree – ReactUnderstanding Your UI as a Tree
/learn/updating-arrays-in-stateAllowedUpdating Arrays in State – ReactUpdating Arrays in State
/learn/updating-objects-in-stateAllowedUpdating Objects in State – ReactUpdating Objects in State
/learn/writing-markup-with-jsxAllowedWriting Markup with JSX – ReactWriting Markup with JSX
/learn/you-might-not-need-an-effectAllowedYou Might Not Need an Effect – ReactYou Might Not Need an Effect
/learn/your-first-componentAllowedYour First Component – ReactYour First Component
/reference/reactAllowedReact Reference Overview – ReactReact Reference Overview
/reference/react-domAllowedReact DOM APIs – ReactReact DOM APIs
/reference/react-dom/clientAllowedClient React DOM APIs – ReactClient React DOM APIs
/reference/react-dom/client/createRootAllowedcreateRoot – ReactcreateRoot
/reference/react-dom/client/hydrateRootAllowedhydrateRoot – ReacthydrateRoot
/reference/react-dom/componentsAllowedReact DOM Components – ReactReact DOM Components
/reference/react-dom/components/commonAllowedCommon components (e.g. <div>) – ReactCommon components (e.g. &lt;div&gt;)
/reference/react-dom/components/formAllowed<form> – React&lt;form&gt; - This feature is available in the latest Canary
/reference/react-dom/components/inputAllowed<input> – React&lt;input&gt;
/reference/react-dom/components/linkAllowed<link> – React&lt;link&gt; - This feature is available in the latest Canary
/reference/react-dom/components/metaAllowed<meta> – React&lt;meta&gt; - This feature is available in the latest Canary
/reference/react-dom/components/optionAllowed<option> – React&lt;option&gt;
/reference/react-dom/components/progressAllowed<progress> – React&lt;progress&gt;
/reference/react-dom/components/scriptAllowed<script> – React&lt;script&gt; - This feature is available in the latest Canary
/reference/react-dom/components/selectAllowed<select> – React&lt;select&gt;
/reference/react-dom/components/styleAllowed<style> – React&lt;style&gt; - This feature is available in the latest Canary
/reference/react-dom/components/textareaAllowed<textarea> – React&lt;textarea&gt;
/reference/react-dom/components/titleAllowed<title> – React&lt;title&gt; - This feature is available in the latest Canary
/reference/react-dom/createPortalAllowedcreatePortal – ReactcreatePortal
/reference/react-dom/findDOMNodeAllowedfindDOMNode – ReactfindDOMNode
/reference/react-dom/flushSyncAllowedflushSync – ReactflushSync
/reference/react-dom/hooksAllowedBuilt-in React DOM Hooks – ReactBuilt-in React DOM Hooks
/reference/react-dom/hooks/useFormStatusAlloweduseFormStatus – ReactuseFormStatus - This feature is available in the latest Canary
/reference/react-dom/hydrateAllowedhydrate – Reacthydrate
/reference/react-dom/preconnectAllowedpreconnect – Reactpreconnect - This feature is available in the latest Canary
/reference/react-dom/prefetchDNSAllowedprefetchDNS – ReactprefetchDNS - This feature is available in the latest Canary
/reference/react-dom/preinitAllowedpreinit – Reactpreinit - This feature is available in the latest Canary
/reference/react-dom/preinitModuleAllowedpreinitModule – ReactpreinitModule - This feature is available in the latest Canary
/reference/react-dom/preloadAllowedpreload – Reactpreload - This feature is available in the latest Canary
/reference/react-dom/preloadModuleAllowedpreloadModule – ReactpreloadModule - This feature is available in the latest Canary
/reference/react-dom/renderAllowedrender – Reactrender
/reference/react-dom/serverAllowedServer React DOM APIs – ReactServer React DOM APIs
/reference/react-dom/server/renderToNodeStreamAllowedrenderToNodeStream – ReactrenderToNodeStream
/reference/react-dom/server/renderToPipeableStreamAllowedrenderToPipeableStream – ReactrenderToPipeableStream
/reference/react-dom/server/renderToReadableStreamAllowedrenderToReadableStream – ReactrenderToReadableStream
/reference/react-dom/server/renderToStaticMarkupAllowedrenderToStaticMarkup – ReactrenderToStaticMarkup
/reference/react-dom/server/renderToStaticNodeStreamAllowedrenderToStaticNodeStream – ReactrenderToStaticNodeStream
/reference/react-dom/server/renderToStringAllowedrenderToString – ReactrenderToString
/reference/react-dom/unmountComponentAtNodeAllowedunmountComponentAtNode – ReactunmountComponentAtNode
/reference/react/ChildrenAllowedChildren – ReactChildren
/reference/react/ComponentAllowedComponent – ReactComponent
/reference/react/FragmentAllowed<Fragment> (<>...</>) – React&lt;Fragment&gt; (&lt;&gt;...&lt;/&gt;)
/reference/react/ProfilerAllowed<Profiler> – React&lt;Profiler&gt;
/reference/react/PureComponentAllowedPureComponent – ReactPureComponent
/reference/react/StrictModeAllowed<StrictMode> – React&lt;StrictMode&gt;
/reference/react/SuspenseAllowed<Suspense> – React&lt;Suspense&gt;
/reference/react/actAllowedact – Reactact
/reference/react/apisAllowedBuilt-in React APIs – ReactBuilt-in React APIs
/reference/react/cacheAllowedcache – Reactcache - This feature is available in the latest Canary
/reference/react/cloneElementAllowedcloneElement – ReactcloneElement
/reference/react/componentsAllowedBuilt-in React Components – ReactBuilt-in React Components
/reference/react/createContextAllowedcreateContext – ReactcreateContext
/reference/react/createElementAllowedcreateElement – ReactcreateElement
/reference/react/createFactoryAllowedcreateFactory – ReactcreateFactory
/reference/react/createRefAllowedcreateRef – ReactcreateRef
/reference/react/experimental_taintObjectReferenceAllowedexperimental_taintObjectReference – Reactexperimental_taintObjectReference
/reference/react/experimental_taintUniqueValueAllowedexperimental_taintUniqueValue – Reactexperimental_taintUniqueValue
/reference/react/experimental_useEffectEventAllowedexperimental_useEffectEvent – Reactexperimental_useEffectEvent
/reference/react/forwardRefAllowedforwardRef – ReactforwardRef
/reference/react/hooksAllowedBuilt-in React Hooks – ReactBuilt-in React Hooks
/reference/react/isValidElementAllowedisValidElement – ReactisValidElement
/reference/react/lazyAllowedlazy – Reactlazy
/reference/react/legacyAllowedLegacy React APIs – ReactLegacy React APIs
/reference/react/memoAllowedmemo – Reactmemo
/reference/react/startTransitionAllowedstartTransition – ReactstartTransition
/reference/react/useAlloweduse – Reactuse - This feature is available in the latest Canary
/reference/react/useActionStateAlloweduseActionState – ReactuseActionState - This feature is available in the latest Canary
/reference/react/useCallbackAlloweduseCallback – ReactuseCallback
/reference/react/useContextAlloweduseContext – ReactuseContext
/reference/react/useDebugValueAlloweduseDebugValue – ReactuseDebugValue
/reference/react/useDeferredValueAlloweduseDeferredValue – ReactuseDeferredValue
/reference/react/useEffectAlloweduseEffect – ReactuseEffect
/reference/react/useIdAlloweduseId – ReactuseId
/reference/react/useImperativeHandleAlloweduseImperativeHandle – ReactuseImperativeHandle
/reference/react/useInsertionEffectAlloweduseInsertionEffect – ReactuseInsertionEffect
/reference/react/useLayoutEffectAlloweduseLayoutEffect – ReactuseLayoutEffect
/reference/react/useMemoAlloweduseMemo – ReactuseMemo
/reference/react/useOptimisticAlloweduseOptimistic – ReactuseOptimistic - This feature is available in the latest Canary
/reference/react/useReducerAlloweduseReducer – ReactuseReducer
/reference/react/useRefAlloweduseRef – ReactuseRef
/reference/react/useStateAlloweduseState – ReactuseState
/reference/react/useSyncExternalStoreAlloweduseSyncExternalStore – ReactuseSyncExternalStore
/reference/react/useTransitionAlloweduseTransition – ReactuseTransition
/reference/rsc/directivesAllowedDirectives – ReactDirectives - This feature is available in the latest Canary
/reference/rsc/server-actionsAllowedServer Actions – ReactServer Actions - This feature is available in the latest Canary
/reference/rsc/server-componentsAllowedReact Server Components – ReactReact Server Components - This feature is available in the latest Canary
/reference/rsc/use-clientAllowed'use client' directive – React'use client' - This feature is available in the latest Canary
/reference/rsc/use-serverAllowed'use server' directive – React'use server' - This feature is available in the latest Canary
/reference/rulesAllowedRules of React – ReactRules of React
/reference/rules/components-and-hooks-must-be-pureAllowedComponents and Hooks must be pure – ReactComponents and Hooks must be pure
/reference/rules/react-calls-components-and-hooksAllowedReact calls Components and Hooks – ReactReact calls Components and Hooks
/reference/rules/rules-of-hooksAllowedRules of Hooks – ReactRules of Hooks
/versionsAllowedReact Versions – ReactReact Versions
/warnings/react-dom-test-utilsAllowedreact-dom/test-utils Deprecation Warnings – Reactreact-dom/test-utils Deprecation Warnings
No rows found, please edit your search term.

OpenGraph metadata

Found 163 row(s).
URL 🔼OG TitleOG DescriptionOG ImageTwitter TitleTwitter DescriptionTwitter Image
/ReactReact is the library for web and native user interfaces. Build user interfaces out of individual pieces called components written in JavaScript. React is designed to let you seamlessly combine components written by independent people, teams, and organizations.https://react.dev/images/og-home.pngReactReact is the library for web and native user interfaces. Build user interfaces out of individual pieces called components written in JavaScript. React is designed to let you seamlessly combine components written by independent people, teams, and organizations.https://react.dev/images/og-home.png
/blogReact Blog – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.pngReact Blog – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.png
/blog/2020/12/21/data-fetching-with-react-server-componentsIntroducing Zero-Bundle-Size React Server Components – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.pngIntroducing Zero-Bundle-Size React Server Components – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.png
/blog/2021/06/08/the-plan-for-react-18The Plan for React 18 – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.pngThe Plan for React 18 – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.png
/blog/2021/12/17/react-conf-2021-recapReact Conf 2021 Recap – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.pngReact Conf 2021 Recap – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.png
/blog/2022/03/08/react-18-upgrade-guideHow to Upgrade to React 18 – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.pngHow to Upgrade to React 18 – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.png
/blog/2022/03/29/react-v18React v18.0 – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.pngReact v18.0 – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.png
/blog/2022/06/15/react-labs-what-we-have-been-working-on-june-2022React Labs: What We've Been Working On – June 2022 – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.pngReact Labs: What We've Been Working On – June 2022 – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.png
/blog/2023/03/16/introducing-react-devIntroducing react.dev – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.pngIntroducing react.dev – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.png
/blog/2023/03/22/react-labs-what-we-have-been-working-on-march-2023React Labs: What We've Been Working On – March 2023 – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.pngReact Labs: What We've Been Working On – March 2023 – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.png
/blog/2023/05/03/react-canariesReact Canaries: Enabling Incremental Feature Rollout Outside Meta – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.pngReact Canaries: Enabling Incremental Feature Rollout Outside Meta – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.png
/blog/2024/02/15/react-labs-what-we-have-been-working-on-february-2024React Labs: What We've Been Working On – February 2024 – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.pngReact Labs: What We've Been Working On – February 2024 – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.png
/blog/2024/04/25/react-19React 19 RC – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.pngReact 19 RC – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.png
/blog/2024/04/25/react-19-upgrade-guideReact 19 RC Upgrade Guide – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.pngReact 19 RC Upgrade Guide – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.png
/blog/2024/05/22/react-conf-2024-recapReact Conf 2024 Recap – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.pngReact Conf 2024 Recap – ReactThe library for web and native user interfaceshttps://react.dev/images/og-blog.png
/communityReact Community – ReactThe library for web and native user interfaceshttps://react.dev/images/og-community.pngReact Community – ReactThe library for web and native user interfaceshttps://react.dev/images/og-community.png
/community/acknowledgementsAcknowledgements – ReactThe library for web and native user interfaceshttps://react.dev/images/og-community.pngAcknowledgements – ReactThe library for web and native user interfaceshttps://react.dev/images/og-community.png
/community/conferencesReact Conferences – ReactThe library for web and native user interfaceshttps://react.dev/images/og-community.pngReact Conferences – ReactThe library for web and native user interfaceshttps://react.dev/images/og-community.png
/community/docs-contributorsDocs Contributors – ReactThe library for web and native user interfaceshttps://react.dev/images/og-community.pngDocs Contributors – ReactThe library for web and native user interfaceshttps://react.dev/images/og-community.png
/community/meetupsReact Meetups – ReactThe library for web and native user interfaceshttps://react.dev/images/og-community.pngReact Meetups – ReactThe library for web and native user interfaceshttps://react.dev/images/og-community.png
/community/teamMeet the Team – ReactThe library for web and native user interfaceshttps://react.dev/images/og-community.pngMeet the Team – ReactThe library for web and native user interfaceshttps://react.dev/images/og-community.png
/community/translationsTranslations – ReactThe library for web and native user interfaceshttps://react.dev/images/og-community.pngTranslations – ReactThe library for web and native user interfaceshttps://react.dev/images/og-community.png
/community/versioning-policyVersioning Policy – ReactThe library for web and native user interfaceshttps://react.dev/images/og-community.pngVersioning Policy – ReactThe library for web and native user interfaceshttps://react.dev/images/og-community.png
/community/videosReact Videos – ReactThe library for web and native user interfaceshttps://react.dev/images/og-community.pngReact Videos – ReactThe library for web and native user interfaceshttps://react.dev/images/og-community.png
/learnQuick Start – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngQuick Start – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/add-react-to-an-existing-projectAdd React to an Existing Project – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngAdd React to an Existing Project – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/adding-interactivityAdding Interactivity – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngAdding Interactivity – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/choosing-the-state-structureChoosing the State Structure – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngChoosing the State Structure – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/conditional-renderingConditional Rendering – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngConditional Rendering – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/describing-the-uiDescribing the UI – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngDescribing the UI – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/editor-setupEditor Setup – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngEditor Setup – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/escape-hatchesEscape Hatches – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngEscape Hatches – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/extracting-state-logic-into-a-reducerExtracting State Logic into a Reducer – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngExtracting State Logic into a Reducer – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/importing-and-exporting-componentsImporting and Exporting Components – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngImporting and Exporting Components – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/installationInstallation – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngInstallation – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/javascript-in-jsx-with-curly-bracesJavaScript in JSX with Curly Braces – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngJavaScript in JSX with Curly Braces – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/keeping-components-pureKeeping Components Pure – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngKeeping Components Pure – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/lifecycle-of-reactive-effectsLifecycle of Reactive Effects – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngLifecycle of Reactive Effects – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/managing-stateManaging State – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngManaging State – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/manipulating-the-dom-with-refsManipulating the DOM with Refs – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngManipulating the DOM with Refs – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/passing-data-deeply-with-contextPassing Data Deeply with Context – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngPassing Data Deeply with Context – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/passing-props-to-a-componentPassing Props to a Component – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngPassing Props to a Component – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/preserving-and-resetting-statePreserving and Resetting State – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngPreserving and Resetting State – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/queueing-a-series-of-state-updatesQueueing a Series of State Updates – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngQueueing a Series of State Updates – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/react-compilerReact Compiler – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngReact Compiler – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/react-developer-toolsReact Developer Tools – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngReact Developer Tools – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/reacting-to-input-with-stateReacting to Input with State – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngReacting to Input with State – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/referencing-values-with-refsReferencing Values with Refs – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngReferencing Values with Refs – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/removing-effect-dependenciesRemoving Effect Dependencies – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngRemoving Effect Dependencies – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/render-and-commitRender and Commit – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngRender and Commit – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/rendering-listsRendering Lists – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngRendering Lists – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/responding-to-eventsResponding to Events – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngResponding to Events – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/reusing-logic-with-custom-hooksReusing Logic with Custom Hooks – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngReusing Logic with Custom Hooks – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/scaling-up-with-reducer-and-contextScaling Up with Reducer and Context – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngScaling Up with Reducer and Context – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/separating-events-from-effectsSeparating Events from Effects – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngSeparating Events from Effects – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/sharing-state-between-componentsSharing State Between Components – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngSharing State Between Components – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/start-a-new-react-projectStart a New React Project – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngStart a New React Project – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/state-a-components-memoryState: A Component's Memory – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngState: A Component's Memory – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/state-as-a-snapshotState as a Snapshot – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngState as a Snapshot – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/synchronizing-with-effectsSynchronizing with Effects – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngSynchronizing with Effects – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/thinking-in-reactThinking in React – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngThinking in React – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/tutorial-tic-tac-toeTutorial: Tic-Tac-Toe – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngTutorial: Tic-Tac-Toe – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/typescriptUsing TypeScript – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngUsing TypeScript – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/understanding-your-ui-as-a-treeUnderstanding Your UI as a Tree – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngUnderstanding Your UI as a Tree – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/updating-arrays-in-stateUpdating Arrays in State – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngUpdating Arrays in State – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/updating-objects-in-stateUpdating Objects in State – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngUpdating Objects in State – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/writing-markup-with-jsxWriting Markup with JSX – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngWriting Markup with JSX – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/you-might-not-need-an-effectYou Might Not Need an Effect – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngYou Might Not Need an Effect – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/learn/your-first-componentYour First Component – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.pngYour First Component – ReactThe library for web and native user interfaceshttps://react.dev/images/og-learn.png
/reference/reactReact Reference Overview – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngReact Reference Overview – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-domReact DOM APIs – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngReact DOM APIs – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/clientClient React DOM APIs – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngClient React DOM APIs – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/client/createRootcreateRoot – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngcreateRoot – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/client/hydrateRoothydrateRoot – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pnghydrateRoot – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/componentsReact DOM Components – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngReact DOM Components – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/components/commonCommon components (e.g. <div>) – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngCommon components (e.g. div) – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/components/form<form> – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngform – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/components/input<input> – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pnginput – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/components/link<link> – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pnglink – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/components/meta<meta> – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngmeta – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/components/option<option> – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngoption – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/components/progress<progress> – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngprogress – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/components/script<script> – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngscript – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/components/select<select> – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngselect – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/components/style<style> – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngstyle – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/components/textarea<textarea> – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngtextarea – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/components/title<title> – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngtitle – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/createPortalcreatePortal – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngcreatePortal – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/findDOMNodefindDOMNode – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngfindDOMNode – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/flushSyncflushSync – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngflushSync – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/hooksBuilt-in React DOM Hooks – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngBuilt-in React DOM Hooks – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/hooks/useFormStatususeFormStatus – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pnguseFormStatus – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/hydratehydrate – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pnghydrate – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/preconnectpreconnect – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngpreconnect – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/prefetchDNSprefetchDNS – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngprefetchDNS – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/preinitpreinit – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngpreinit – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/preinitModulepreinitModule – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngpreinitModule – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/preloadpreload – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngpreload – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/preloadModulepreloadModule – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngpreloadModule – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/renderrender – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngrender – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/serverServer React DOM APIs – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngServer React DOM APIs – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/server/renderToNodeStreamrenderToNodeStream – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngrenderToNodeStream – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/server/renderToPipeableStreamrenderToPipeableStream – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngrenderToPipeableStream – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/server/renderToReadableStreamrenderToReadableStream – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngrenderToReadableStream – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/server/renderToStaticMarkuprenderToStaticMarkup – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngrenderToStaticMarkup – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/server/renderToStaticNodeStreamrenderToStaticNodeStream – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngrenderToStaticNodeStream – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/server/renderToStringrenderToString – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngrenderToString – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react-dom/unmountComponentAtNodeunmountComponentAtNode – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngunmountComponentAtNode – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/ChildrenChildren – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngChildren – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/ComponentComponent – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngComponent – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/Fragment<Fragment> (<>...</>) – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngFragment (.../) – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/Profiler<Profiler> – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngProfiler – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/PureComponentPureComponent – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngPureComponent – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/StrictMode<StrictMode> – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngStrictMode – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/Suspense<Suspense> – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngSuspense – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/actact – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngact – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/apisBuilt-in React APIs – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngBuilt-in React APIs – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/cachecache – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngcache – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/cloneElementcloneElement – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngcloneElement – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/componentsBuilt-in React Components – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngBuilt-in React Components – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/createContextcreateContext – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngcreateContext – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/createElementcreateElement – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngcreateElement – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/createFactorycreateFactory – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngcreateFactory – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/createRefcreateRef – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngcreateRef – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/experimental_taintObjectReferenceexperimental_taintObjectReference – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngexperimental_taintObjectReference – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/experimental_taintUniqueValueexperimental_taintUniqueValue – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngexperimental_taintUniqueValue – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/experimental_useEffectEventexperimental_useEffectEvent – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngexperimental_useEffectEvent – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/forwardRefforwardRef – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngforwardRef – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/hooksBuilt-in React Hooks – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngBuilt-in React Hooks – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/isValidElementisValidElement – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngisValidElement – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/lazylazy – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pnglazy – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/legacyLegacy React APIs – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngLegacy React APIs – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/memomemo – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngmemo – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/startTransitionstartTransition – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngstartTransition – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/useuse – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pnguse – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/useActionStateuseActionState – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pnguseActionState – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/useCallbackuseCallback – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pnguseCallback – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/useContextuseContext – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pnguseContext – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/useDebugValueuseDebugValue – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pnguseDebugValue – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/useDeferredValueuseDeferredValue – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pnguseDeferredValue – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/useEffectuseEffect – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pnguseEffect – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/useIduseId – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pnguseId – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/useImperativeHandleuseImperativeHandle – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pnguseImperativeHandle – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/useInsertionEffectuseInsertionEffect – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pnguseInsertionEffect – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/useLayoutEffectuseLayoutEffect – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pnguseLayoutEffect – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/useMemouseMemo – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pnguseMemo – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/useOptimisticuseOptimistic – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pnguseOptimistic – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/useReduceruseReducer – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pnguseReducer – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/useRefuseRef – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pnguseRef – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/useStateuseState – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pnguseState – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/useSyncExternalStoreuseSyncExternalStore – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pnguseSyncExternalStore – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/react/useTransitionuseTransition – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pnguseTransition – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/rsc/directivesDirectives – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngDirectives – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/rsc/server-actionsServer Actions – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngServer Actions – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/rsc/server-componentsReact Server Components – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngReact Server Components – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/rsc/use-client'use client' directive – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png'use client' directive – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/rsc/use-server'use server' directive – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png'use server' directive – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/rulesRules of React – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngRules of React – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/rules/components-and-hooks-must-be-pureComponents and Hooks must be pure – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngComponents and Hooks must be pure – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/rules/react-calls-components-and-hooksReact calls Components and Hooks – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngReact calls Components and Hooks – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/reference/rules/rules-of-hooksRules of Hooks – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.pngRules of Hooks – ReactThe library for web and native user interfaceshttps://react.dev/images/og-reference.png
/versionsReact Versions – ReactThe library for web and native user interfaceshttps://react.dev/images/og-unknown.pngReact Versions – ReactThe library for web and native user interfaceshttps://react.dev/images/og-unknown.png
/warnings/react-dom-test-utilsreact-dom/test-utils Deprecation Warnings – ReactThe library for web and native user interfaceshttps://react.dev/images/og-unknown.pngreact-dom/test-utils Deprecation Warnings – ReactThe library for web and native user interfaceshttps://react.dev/images/og-unknown.png
No rows found, please edit your search term.

Heading structure

Found 163 row(s).
Heading structureCountErrors 🔽URL
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> React Server Components - This feature is available in the latest Canary
    • <h3> Note
    • <h3> Server Components without a Server [#server-components-without-a-server]
    • <h3> Note
    • <h3> Server Components with a Server [#server-components-with-a-server]
    • <h3> Adding interactivity to Server Components [#adding-interactivity-to-server-components]
    • <h3> Note
    • <h3> Async components with Server Components [#async-components-with-server-components]
    • <h2> On this page
1412/reference/rsc/server-components
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> Server Actions - This feature is available in the latest Canary
    • <h3> Note
    • <h3> Creating a Server Action from a Server Component [#creating-a-server-action-from-a-server-component]
    • <h3> Importing Server Actions from Client Components [#importing-server-actions-from-client-components]
    • <h3> Composing Server Actions with Actions [#composing-server-actions-with-actions]
    • <h3> Form Actions with Server Actions [#form-actions-with-server-actions]
    • <h3> Server Actions with useActionState [#server-actions-with-use-action-state]
    • <h3> Progressive enhancement with useActionState [#progressive-enhancement-with-useactionstate]
    • <h2> On this page
1412/reference/rsc/server-actions
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> React Compiler
    • <h3> Under Construction
    • <h3> You will learn
    • <h3> Note
    • <h3> What does the compiler do? [#what-does-the-compiler-do]
    • <h3> What does the compiler assume? [#what-does-the-compiler-assume]
    • <h3> Should I try out the compiler? [#should-i-try-out-the-compiler]
    • <h2> Getting Started [#getting-started]
      • <h3> Checking compatibility [#checking-compatibility]
      • <h3> Installing eslint-plugin-react-compiler [#installing-eslint-plugin-react-compiler]
      • <h3> Rolling out the compiler to your codebase [#using-the-compiler-effectively]
    • <h2> Usage [#installation]
      • <h3> Babel [#usage-with-babel]
      • <h3> Vite [#usage-with-vite]
      • <h3> Next.js [#usage-with-nextjs]
      • <h3> Remix [#usage-with-remix]
      • <h3> Webpack [#usage-with-webpack]
      • <h3> Expo [#usage-with-expo]
      • <h3> Metro (React Native) [#usage-with-react-native-metro]
      • <h3> Rspack [#usage-with-rspack]
      • <h3> Rsbuild [#usage-with-rsbuild]
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> (0 , _c) is not a function error [#0--_c-is-not-a-function-error]
      • <h3> How do I know my components have been optimized? [#how-do-i-know-my-components-have-been-optimized]
      • <h3> Something is not working after compilation [#something-is-not-working-after-compilation]
      • <h3> Note
      • <h3> Other issues [#other-issues]
    • <h2> On this page
308/learn/react-compiler
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> preinitModule - This feature is available in the latest Canary
    • <h3> Canary
    • <h3> Note
    • <h2> Reference [#reference]
      • <h3> preinitModule(href, options) [#preinitmodule]
    • <h2> Usage [#usage]
      • <h3> Preloading when rendering [#preloading-when-rendering]
      • <h3> Preloading in an event handler [#preloading-in-an-event-handler]
    • <h2> On this page
147/reference/react-dom/preinitModule
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> useActionState - This feature is available in the latest Canary
    • <h3> Canary
    • <h3> Note
    • <h2> Reference [#reference]
      • <h3> useActionState(action, initialState, permalink?) [#useactionstate]
    • <h2> Usage [#usage]
      • <h3> Using information returned by a form action [#using-information-returned-by-a-form-action]
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> My action can no longer read the submitted form data [#my-action-can-no-longer-read-the-submitted-form-data]
    • <h2> On this page
157/reference/react/useActionState
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> preinit - This feature is available in the latest Canary
    • <h3> Canary
    • <h3> Note
    • <h2> Reference [#reference]
      • <h3> preinit(href, options) [#preinit]
    • <h2> Usage [#usage]
      • <h3> Preiniting when rendering [#preiniting-when-rendering]
      • <h3> Preiniting in an event handler [#preiniting-in-an-event-handler]
    • <h2> On this page
147/reference/react-dom/preinit
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> preload - This feature is available in the latest Canary
    • <h3> Canary
    • <h3> Note
    • <h2> Reference [#reference]
      • <h3> preload(href, options) [#preload]
    • <h2> Usage [#usage]
      • <h3> Preloading when rendering [#preloading-when-rendering]
      • <h3> Preloading in an event handler [#preloading-in-an-event-handler]
    • <h2> On this page
147/reference/react-dom/preload
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> Components and Hooks must be pure
    • <h3> Note
    • <h3> Why does purity matter? [#why-does-purity-matter]
    • <h2> Components and Hooks must be idempotent [#components-and-hooks-must-be-idempotent]
    • <h2> Side effects must run outside of render [#side-effects-must-run-outside-of-render]
      • <h3> Note
      • <h3> When is it okay to have mutation? [#mutation]
    • <h2> Props and state are immutable [#props-and-state-are-immutable]
      • <h3> Don’t mutate Props [#props]
      • <h3> Don’t mutate State [#state]
    • <h2> Return values and arguments to Hooks are immutable [#return-values-and-arguments-to-hooks-are-immutable]
    • <h2> Values are immutable after being passed to JSX [#values-are-immutable-after-being-passed-to-jsx]
    • <h2> On this page
187/reference/rules/components-and-hooks-must-be-pure
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> preloadModule - This feature is available in the latest Canary
    • <h3> Canary
    • <h3> Note
    • <h2> Reference [#reference]
      • <h3> preloadModule(href, options) [#preloadmodule]
    • <h2> Usage [#usage]
      • <h3> Preloading when rendering [#preloading-when-rendering]
      • <h3> Preloading in an event handler [#preloading-in-an-event-handler]
    • <h2> On this page
147/reference/react-dom/preloadModule
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h3> REACT API
  • <h3> REACT DOM API
  • <h3> GET INVOLVED
  • <h3> STAY INFORMED
  • <h1> React Versions
    • <h2> Future versions [#future-versions]
    • <h2> Previous versions [#previous-versions]
      • <h3> Note
    • <h2> Changelog [#changelog]
      • <h3> React 18 [#react-18]
      • <h3> React 17 [#react-17]
      • <h3> React 16 [#react-16]
      • <h3> React 15 [#react-15]
      • <h3> React 0.14 [#react-14]
      • <h3> React 0.13 [#react-13]
      • <h3> React 0.12 [#react-12]
      • <h3> React 0.11 [#react-11]
      • <h3> React 0.10 and below [#react-10-and-below]
      • <h3> Initial Commit [#initial-commit]
    • <h2> On this page
226/versions
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> &lt;link&gt; - This feature is available in the latest Canary
    • <h3> Canary
    • <h2> Reference [#reference]
      • <h3> &lt;link&gt; [#link]
    • <h2> Usage [#usage]
      • <h3> Linking to related resources [#linking-to-related-resources]
      • <h3> Linking to a stylesheet [#linking-to-a-stylesheet]
      • <h3> Note
      • <h3> Controlling stylesheet precedence [#controlling-stylesheet-precedence]
      • <h3> Deduplicated stylesheet rendering [#deduplicated-stylesheet-rendering]
      • <h3> Annotating specific items within the document with links [#annotating-specific-items-within-the-document-with-links]
    • <h2> On this page
176/reference/react-dom/components/link
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> hydrate
    • <h3> Deprecated
    • <h2> Reference [#reference]
      • <h3> hydrate(reactNode, domNode, callback?) [#hydrate]
    • <h2> Usage [#usage]
      • <h3> Hydrating server-rendered HTML [#hydrating-server-rendered-html]
      • <h3> Suppressing unavoidable hydration mismatch errors [#suppressing-unavoidable-hydration-mismatch-errors]
      • <h3> Handling different client and server content [#handling-different-client-and-server-content]
      • <h3> Pitfall
    • <h2> On this page
156/reference/react-dom/hydrate
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> 'use client' - This feature is available in the latest Canary
    • <h3> Canary
    • <h2> Reference [#reference]
      • <h3> 'use client' [#use-client]
      • <h3> How 'use client' marks client code [#how-use-client-marks-client-code]
      • <h3> When to use 'use client' [#when-to-use-use-client]
      • <h3> Serializable types returned by Server Components [#serializable-types]
    • <h2> Usage [#usage]
      • <h3> Building with interactivity and state [#building-with-interactivity-and-state]
      • <h3> Using client APIs [#using-client-apis]
      • <h3> Using third-party libraries [#using-third-party-libraries]
    • <h2> On this page
176/reference/rsc/use-client
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> 'use server' - This feature is available in the latest Canary
    • <h3> Canary
    • <h2> Reference [#reference]
      • <h3> 'use server' [#use-server]
      • <h3> Security considerations [#security]
      • <h3> Under Construction
      • <h3> Serializable arguments and return values [#serializable-parameters-and-return-values]
    • <h2> Usage [#usage]
      • <h3> Server Actions in forms [#server-actions-in-forms]
      • <h3> Calling a Server Action outside of &lt;form&gt; [#calling-a-server-action-outside-of-form]
    • <h2> On this page
166/reference/rsc/use-server
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> cloneElement
    • <h3> Pitfall
    • <h2> Reference [#reference]
      • <h3> cloneElement(element, props, ...children) [#cloneelement]
    • <h2> Usage [#usage]
      • <h3> Overriding props of an element [#overriding-props-of-an-element]
      • <h3> Pitfall
    • <h2> Alternatives [#alternatives]
      • <h3> Passing data with a render prop [#passing-data-with-a-render-prop]
      • <h3> Passing data through context [#passing-data-through-context]
      • <h3> Extracting logic into a custom Hook [#extracting-logic-into-a-custom-hook]
    • <h2> On this page
176/reference/react/cloneElement
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> createRef
    • <h3> Pitfall
    • <h2> Reference [#reference]
      • <h3> createRef() [#createref]
    • <h2> Usage [#usage]
      • <h3> Declaring a ref in a class component [#declaring-a-ref-in-a-class-component]
      • <h3> Pitfall
    • <h2> Alternatives [#alternatives]
      • <h3> Migrating from a class with createRef to a function with useRef [#migrating-from-a-class-with-createref-to-a-function-with-useref]
    • <h2> On this page
156/reference/react/createRef
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> cache - This feature is available in the latest Canary
    • <h3> Canary
    • <h2> Reference [#reference]
      • <h3> cache(fn) [#cache]
      • <h3> Note
    • <h2> Usage [#usage]
      • <h3> Cache an expensive computation [#cache-expensive-computation]
      • <h3> Pitfall
      • <h3> Share a snapshot of data [#take-and-share-snapshot-of-data]
      • <h3> Note
      • <h3> Preload data [#preload-data]
      • <h3> Pitfall
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> My memoized function still runs even though I’ve called it with the same arguments [#memoized-function-still-runs]
    • <h2> On this page
206/reference/react/cache
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> preconnect - This feature is available in the latest Canary
    • <h3> Canary
    • <h2> Reference [#reference]
      • <h3> preconnect(href) [#preconnect]
    • <h2> Usage [#usage]
      • <h3> Preconnecting when rendering [#preconnecting-when-rendering]
      • <h3> Preconnecting in an event handler [#preconnecting-in-an-event-handler]
    • <h2> On this page
136/reference/react-dom/preconnect
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> useInsertionEffect
    • <h3> Pitfall
    • <h2> Reference [#reference]
      • <h3> useInsertionEffect(setup, dependencies?) [#useinsertioneffect]
    • <h2> Usage [#usage]
      • <h3> Injecting dynamic styles from CSS-in-JS libraries [#injecting-dynamic-styles-from-css-in-js-libraries]
    • <h2> On this page
126/reference/react/useInsertionEffect
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> render
    • <h3> Deprecated
    • <h2> Reference [#reference]
      • <h3> render(reactNode, domNode, callback?) [#render]
    • <h2> Usage [#usage]
      • <h3> Rendering the root component [#rendering-the-root-component]
      • <h3> Rendering multiple roots [#rendering-multiple-roots]
      • <h3> Updating the rendered tree [#updating-the-rendered-tree]
    • <h2> On this page
146/reference/react-dom/render
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> PureComponent
    • <h3> Pitfall
    • <h2> Reference [#reference]
      • <h3> PureComponent [#purecomponent]
    • <h2> Usage [#usage]
      • <h3> Skipping unnecessary re-renders for class components [#skipping-unnecessary-re-renders-for-class-components]
      • <h3> Pitfall
    • <h2> Alternatives [#alternatives]
      • <h3> Migrating from a PureComponent class component to a function [#migrating-from-a-purecomponent-class-component-to-a-function]
      • <h3> Note
    • <h2> On this page
166/reference/react/PureComponent
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> &lt;style&gt; - This feature is available in the latest Canary
    • <h3> Canary
    • <h2> Reference [#reference]
      • <h3> &lt;style&gt; [#style]
    • <h2> Usage [#usage]
      • <h3> Rendering an inline CSS stylesheet [#rendering-an-inline-css-stylesheet]
    • <h2> On this page
126/reference/react-dom/components/style
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> Component
    • <h3> Pitfall
    • <h2> Reference [#reference]
      • <h3> Component [#component]
      • <h3> context [#context]
      • <h3> Note
      • <h3> props [#props]
      • <h3> Note
      • <h3> refs [#refs]
      • <h3> Deprecated
      • <h3> state [#state]
      • <h3> Note
      • <h3> constructor(props) [#constructor]
      • <h3> Note
      • <h3> componentDidCatch(error, info) [#componentdidcatch]
      • <h3> Note
      • <h3> componentDidMount() [#componentdidmount]
      • <h3> Note
      • <h3> componentDidUpdate(prevProps, prevState, snapshot?) [#componentdidupdate]
      • <h3> Note
      • <h3> componentWillMount() [#componentwillmount]
      • <h3> Deprecated
      • <h3> componentWillReceiveProps(nextProps) [#componentwillreceiveprops]
      • <h3> Deprecated
      • <h3> componentWillUpdate(nextProps, nextState) [#componentwillupdate]
      • <h3> Deprecated
      • <h3> componentWillUnmount() [#componentwillunmount]
      • <h3> Note
      • <h3> forceUpdate(callback?) [#forceupdate]
      • <h3> Note
      • <h3> getChildContext() [#getchildcontext]
      • <h3> Deprecated
      • <h3> getSnapshotBeforeUpdate(prevProps, prevState) [#getsnapshotbeforeupdate]
      • <h3> Note
      • <h3> render() [#render]
      • <h3> setState(nextState, callback?) [#setstate]
      • <h3> Pitfall
      • <h3> Note
      • <h3> shouldComponentUpdate(nextProps, nextState, nextContext) [#shouldcomponentupdate]
      • <h3> Note
      • <h3> UNSAFE_componentWillMount() [#unsafe_componentwillmount]
      • <h3> Note
      • <h3> UNSAFE_componentWillReceiveProps(nextProps, nextContext) [#unsafe_componentwillreceiveprops]
      • <h3> Note
      • <h3> UNSAFE_componentWillUpdate(nextProps, nextState) [#unsafe_componentwillupdate]
      • <h3> Note
      • <h3> static childContextTypes [#static-childcontexttypes]
      • <h3> Deprecated
      • <h3> static contextTypes [#static-contexttypes]
      • <h3> Deprecated
      • <h3> static contextType [#static-contexttype]
      • <h3> Note
      • <h3> static defaultProps [#static-defaultprops]
      • <h3> Note
      • <h3> static propTypes [#static-proptypes]
      • <h3> Note
      • <h3> static getDerivedStateFromError(error) [#static-getderivedstatefromerror]
      • <h3> Note
      • <h3> static getDerivedStateFromProps(props, state) [#static-getderivedstatefromprops]
      • <h3> Pitfall
      • <h3> Note
    • <h2> Usage [#usage]
      • <h3> Defining a class component [#defining-a-class-component]
      • <h3> Pitfall
      • <h3> Adding state to a class component [#adding-state-to-a-class-component]
      • <h3> Pitfall
      • <h3> Adding lifecycle methods to a class component [#adding-lifecycle-methods-to-a-class-component]
      • <h3> Pitfall
      • <h3> Catching rendering errors with an error boundary [#catching-rendering-errors-with-an-error-boundary]
      • <h3> Note
    • <h2> Alternatives [#alternatives]
      • <h3> Migrating a simple component from a class to a function [#migrating-a-simple-component-from-a-class-to-a-function]
      • <h3> Migrating a component with state from a class to a function [#migrating-a-component-with-state-from-a-class-to-a-function]
      • <h3> Migrating a component with lifecycle methods from a class to a function [#migrating-a-component-with-lifecycle-methods-from-a-class-to-a-function]
      • <h3> Note
      • <h3> Migrating a component with context from a class to a function [#migrating-a-component-with-context-from-a-class-to-a-function]
    • <h2> On this page
826/reference/react/Component
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> createFactory
    • <h3> Deprecated
    • <h2> Reference [#reference]
      • <h3> createFactory(type) [#createfactory]
    • <h2> Usage [#usage]
      • <h3> Creating React elements with a factory [#creating-react-elements-with-a-factory]
    • <h2> Alternatives [#alternatives]
      • <h3> Copying createFactory into your project [#copying-createfactory-into-your-project]
      • <h3> Replacing createFactory with createElement [#replacing-createfactory-with-createelement]
      • <h3> Replacing createFactory with JSX [#replacing-createfactory-with-jsx]
      • <h3> Pitfall
    • <h2> On this page
176/reference/react/createFactory
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> experimental_useEffectEvent
    • <h3> Under Construction
76/reference/react/experimental_useEffectEvent
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> renderToPipeableStream
    • <h3> Note
    • <h2> Reference [#reference]
      • <h3> renderToPipeableStream(reactNode, options?) [#rendertopipeablestream]
    • <h2> Usage [#usage]
      • <h3> Rendering a React tree as HTML to a Node.js Stream [#rendering-a-react-tree-as-html-to-a-nodejs-stream]
      • <h3> Streaming more content as it loads [#streaming-more-content-as-it-loads]
      • <h3> Note
      • <h3> Specifying what goes into the shell [#specifying-what-goes-into-the-shell]
      • <h3> Logging crashes on the server [#logging-crashes-on-the-server]
      • <h3> Recovering from errors inside the shell [#recovering-from-errors-inside-the-shell]
      • <h3> Recovering from errors outside the shell [#recovering-from-errors-outside-the-shell]
      • <h3> Setting the status code [#setting-the-status-code]
      • <h3> Handling different errors in different ways [#handling-different-errors-in-different-ways]
      • <h3> Waiting for all content to load for crawlers and static generation [#waiting-for-all-content-to-load-for-crawlers-and-static-generation]
      • <h3> Aborting server rendering [#aborting-server-rendering]
    • <h2> On this page
226/reference/react-dom/server/renderToPipeableStream
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> &lt;script&gt; - This feature is available in the latest Canary
    • <h3> Canary
    • <h2> Reference [#reference]
      • <h3> &lt;script&gt; [#script]
    • <h2> Usage [#usage]
      • <h3> Rendering an external script [#rendering-an-external-script]
      • <h3> Note
      • <h3> Rendering an inline script [#rendering-an-inline-script]
    • <h2> On this page
146/reference/react-dom/components/script
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> &lt;form&gt; - This feature is available in the latest Canary
    • <h3> Canary
    • <h2> Reference [#reference]
      • <h3> &lt;form&gt; [#form]
    • <h2> Usage [#usage]
      • <h3> Handle form submission on the client [#handle-form-submission-on-the-client]
      • <h3> Handle form submission with a Server Action [#handle-form-submission-with-a-server-action]
      • <h3> Display a pending state during form submission [#display-a-pending-state-during-form-submission]
      • <h3> Optimistically updating form data [#optimistically-updating-form-data]
      • <h3> Handling form submission errors [#handling-form-submission-errors]
      • <h3> Display a form submission error without JavaScript [#display-a-form-submission-error-without-javascript]
      • <h3> Handling multiple submission types [#handling-multiple-submission-types]
    • <h2> On this page
186/reference/react-dom/components/form
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> prefetchDNS - This feature is available in the latest Canary
    • <h3> Canary
    • <h2> Reference [#reference]
      • <h3> prefetchDNS(href) [#prefetchdns]
    • <h2> Usage [#usage]
      • <h3> Prefetching DNS when rendering [#prefetching-dns-when-rendering]
      • <h3> Prefetching DNS in an event handler [#prefetching-dns-in-an-event-handler]
    • <h2> On this page
136/reference/react-dom/prefetchDNS
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> &lt;meta&gt; - This feature is available in the latest Canary
    • <h3> Canary
    • <h2> Reference [#reference]
      • <h3> &lt;meta&gt; [#meta]
    • <h2> Usage [#usage]
      • <h3> Annotating the document with metadata [#annotating-the-document-with-metadata]
      • <h3> Annotating specific items within the document with metadata [#annotating-specific-items-within-the-document-with-metadata]
    • <h2> On this page
136/reference/react-dom/components/meta
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> experimental_taintUniqueValue
    • <h3> Under Construction
    • <h2> Reference [#reference]
      • <h3> taintUniqueValue(message, lifetime, value) [#taintuniquevalue]
    • <h2> Usage [#usage]
      • <h3> Prevent a token from being passed to Client Components [#prevent-a-token-from-being-passed-to-client-components]
      • <h3> Pitfall
    • <h2> On this page
136/reference/react/experimental_taintUniqueValue
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> flushSync
    • <h3> Pitfall
    • <h2> Reference [#reference]
      • <h3> flushSync(callback) [#flushsync]
    • <h2> Usage [#usage]
      • <h3> Flushing updates for third-party integrations [#flushing-updates-for-third-party-integrations]
      • <h3> Pitfall
    • <h2> On this page
136/reference/react-dom/flushSync
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> use - This feature is available in the latest Canary
    • <h3> Canary
    • <h2> Reference [#reference]
      • <h3> use(resource) [#use]
    • <h2> Usage [#usage]
      • <h3> Reading context with use [#reading-context-with-use]
      • <h3> Pitfall
      • <h3> Streaming data from the server to the client [#streaming-data-from-server-to-client]
      • <h3> Note
      • <h3> Dealing with rejected Promises [#dealing-with-rejected-promises]
      • <h3> Pitfall
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> “Suspense Exception: This is not a real error!” [#suspense-exception-error]
    • <h2> On this page
196/reference/react/use
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> Directives - This feature is available in the latest Canary
    • <h3> Canary
    • <h2> Source code directives [#source-code-directives]
    • <h2> On this page
96/reference/rsc/directives
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> unmountComponentAtNode
    • <h3> Deprecated
    • <h2> Reference [#reference]
      • <h3> unmountComponentAtNode(domNode) [#unmountcomponentatnode]
    • <h2> Usage [#usage]
      • <h3> Removing a React app from a DOM element [#removing-a-react-app-from-a-dom-element]
    • <h2> On this page
126/reference/react-dom/unmountComponentAtNode
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> useFormStatus - This feature is available in the latest Canary
    • <h3> Canary
    • <h2> Reference [#reference]
      • <h3> useFormStatus() [#use-form-status]
    • <h2> Usage [#usage]
      • <h3> Display a pending state during form submission [#display-a-pending-state-during-form-submission]
      • <h3> Pitfall
      • <h3> Read the form data being submitted [#read-form-data-being-submitted]
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> status.pending is never true [#pending-is-never-true]
    • <h2> On this page
166/reference/react-dom/hooks/useFormStatus
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> Rules of React
    • <h3> Note
    • <h2> Components and Hooks must be pure [#components-and-hooks-must-be-pure]
    • <h2> React calls Components and Hooks [#react-calls-components-and-hooks]
    • <h2> Rules of Hooks [#rules-of-hooks]
    • <h2> On this page
116/reference/rules
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> findDOMNode
    • <h3> Deprecated
    • <h2> Reference [#reference]
      • <h3> findDOMNode(componentInstance) [#finddomnode]
    • <h2> Usage [#usage]
      • <h3> Finding the root DOM node of a class component [#finding-the-root-dom-node-of-a-class-component]
    • <h2> Alternatives [#alternatives]
      • <h3> Reading component’s own DOM node from a ref [#reading-components-own-dom-node-from-a-ref]
      • <h3> Reading a child component’s DOM node from a forwarded ref [#reading-a-child-components-dom-node-from-a-forwarded-ref]
      • <h3> Adding a wrapper &lt;div&gt; element [#adding-a-wrapper-div-element]
    • <h2> On this page
166/reference/react-dom/findDOMNode
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> experimental_taintObjectReference
    • <h3> Under Construction
    • <h2> Reference [#reference]
      • <h3> taintObjectReference(message, object) [#taintobjectreference]
      • <h3> Pitfall
    • <h2> Usage [#usage]
      • <h3> Prevent user data from unintentionally reaching the client [#prevent-user-data-from-unintentionally-reaching-the-client]
    • <h2> On this page
136/reference/react/experimental_taintObjectReference
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> useOptimistic - This feature is available in the latest Canary
    • <h3> Canary
    • <h2> Reference [#reference]
      • <h3> useOptimistic(state, updateFn) [#use]
    • <h2> Usage [#usage]
      • <h3> Optimistically updating forms [#optimistically-updating-with-forms]
    • <h2> On this page
126/reference/react/useOptimistic
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> renderToString
    • <h3> Pitfall
    • <h2> Reference [#reference]
      • <h3> renderToString(reactNode, options?) [#rendertostring]
    • <h2> Usage [#usage]
      • <h3> Rendering a React tree as HTML to a string [#rendering-a-react-tree-as-html-to-a-string]
      • <h3> Pitfall
    • <h2> Alternatives [#alternatives]
      • <h3> Migrating from renderToString to a streaming method on the server [#migrating-from-rendertostring-to-a-streaming-method-on-the-server]
      • <h3> Removing renderToString from the client code [#removing-rendertostring-from-the-client-code]
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> When a component suspends, the HTML always contains a fallback [#when-a-component-suspends-the-html-always-contains-a-fallback]
    • <h2> On this page
186/reference/react-dom/server/renderToString
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h3> REACT API
  • <h3> REACT DOM API
  • <h3> GET INVOLVED
  • <h3> STAY INFORMED
  • <h1> react-dom/test-utils Deprecation Warnings
    • <h2> ReactDOMTestUtils.act() warning [#reactdomtestutilsact-warning]
    • <h2> Rest of ReactDOMTestUtils APIS [#rest-of-reactdomtestutils-apis]
      • <h3> ReactDOMTestUtils.renderIntoDocument [#reactdomtestutilsrenderintodocument]
      • <h3> ReactDOMTestUtils.Simulate [#reactdomtestutilssimulate]
      • <h3> List of all removed APIs [#list-of-all-removed-apis-list-of-all-removed-apis]
    • <h2> On this page
136/warnings/react-dom-test-utils
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> renderToReadableStream
    • <h3> Note
    • <h2> Reference [#reference]
      • <h3> renderToReadableStream(reactNode, options?) [#rendertoreadablestream]
    • <h2> Usage [#usage]
      • <h3> Rendering a React tree as HTML to a Readable Web Stream [#rendering-a-react-tree-as-html-to-a-readable-web-stream]
      • <h3> Streaming more content as it loads [#streaming-more-content-as-it-loads]
      • <h3> Note
      • <h3> Specifying what goes into the shell [#specifying-what-goes-into-the-shell]
      • <h3> Logging crashes on the server [#logging-crashes-on-the-server]
      • <h3> Recovering from errors inside the shell [#recovering-from-errors-inside-the-shell]
      • <h3> Recovering from errors outside the shell [#recovering-from-errors-outside-the-shell]
      • <h3> Setting the status code [#setting-the-status-code]
      • <h3> Handling different errors in different ways [#handling-different-errors-in-different-ways]
      • <h3> Waiting for all content to load for crawlers and static generation [#waiting-for-all-content-to-load-for-crawlers-and-static-generation]
      • <h3> Aborting server rendering [#aborting-server-rendering]
    • <h2> On this page
226/reference/react-dom/server/renderToReadableStream
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> act
    • <h3> Note
    • <h2> Reference [#reference]
      • <h3> await act(async actFn) [#await-act-async-actfn]
      • <h3> Note
    • <h2> Usage [#usage]
      • <h3> Rendering components in tests [#rendering-components-in-tests]
      • <h3> Dispatching events in tests [#dispatching-events-in-tests]
      • <h3> Pitfall
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> I’m getting an error: “The current testing environment is not configured to support act”(…)” [#error-the-current-testing-environment-is-not-configured-to-support-act]
      • <h3> Note
    • <h2> On this page
186/reference/react/act
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> renderToNodeStream
    • <h3> Deprecated
    • <h2> Reference [#reference]
      • <h3> renderToNodeStream(reactNode, options?) [#rendertonodestream]
    • <h2> Usage [#usage]
      • <h3> Rendering a React tree as HTML to a Node.js Readable Stream [#rendering-a-react-tree-as-html-to-a-nodejs-readable-stream]
    • <h2> On this page
126/reference/react-dom/server/renderToNodeStream
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> &lt;title&gt; - This feature is available in the latest Canary
    • <h3> Canary
    • <h2> Reference [#reference]
      • <h3> &lt;title&gt; [#title]
      • <h3> Pitfall
    • <h2> Usage [#usage]
      • <h3> Set the document title [#set-the-document-title]
      • <h3> Use variables in the title [#use-variables-in-the-title]
    • <h2> On this page
146/reference/react-dom/components/title
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> Children
    • <h3> Pitfall
    • <h2> Reference [#reference]
      • <h3> Children.count(children) [#children-count]
      • <h3> Children.forEach(children, fn, thisArg?) [#children-foreach]
      • <h3> Children.map(children, fn, thisArg?) [#children-map]
      • <h3> Children.only(children) [#children-only]
      • <h3> Children.toArray(children) [#children-toarray]
    • <h2> Usage [#usage]
      • <h3> Transforming children [#transforming-children]
      • <h3> Pitfall
      • <h3> Running some code for each child [#running-some-code-for-each-child]
      • <h3> Pitfall
      • <h3> Counting children [#counting-children]
      • <h3> Pitfall
      • <h3> Converting children to an array [#converting-children-to-an-array]
      • <h3> Pitfall
    • <h2> Alternatives [#alternatives]
      • <h3> Note
      • <h3> Exposing multiple components [#exposing-multiple-components]
      • <h3> Accepting an array of objects as a prop [#accepting-an-array-of-objects-as-a-prop]
      • <h3> Calling a render prop to customize rendering [#calling-a-render-prop-to-customize-rendering]
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> I pass a custom component, but the Children methods don’t show its render result [#i-pass-a-custom-component-but-the-children-methods-dont-show-its-render-result]
    • <h2> On this page
306/reference/react/Children
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> useLayoutEffect
    • <h3> Pitfall
    • <h2> Reference [#reference]
      • <h3> useLayoutEffect(setup, dependencies?) [#useinsertioneffect]
    • <h2> Usage [#usage]
      • <h3> Measuring layout before the browser repaints the screen [#measuring-layout-before-the-browser-repaints-the-screen]
      • <h3> Note
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> I’m getting an error: “useLayoutEffect does nothing on the server” [#im-getting-an-error-uselayouteffect-does-nothing-on-the-server]
    • <h2> On this page
156/reference/react/useLayoutEffect
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> Built-in React Components
    • <h2> Built-in components [#built-in-components]
    • <h2> Your own components [#your-own-components]
    • <h2> On this page
95/reference/react/components
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> &lt;textarea&gt;
    • <h2> Reference [#reference]
      • <h3> &lt;textarea&gt; [#textarea]
    • <h2> Usage [#usage]
      • <h3> Displaying a text area [#displaying-a-text-area]
      • <h3> Providing a label for a text area [#providing-a-label-for-a-text-area]
      • <h3> Providing an initial value for a text area [#providing-an-initial-value-for-a-text-area]
      • <h3> Pitfall
      • <h3> Reading the text area value when submitting a form [#reading-the-text-area-value-when-submitting-a-form]
      • <h3> Note
      • <h3> Pitfall
      • <h3> Controlling a text area with a state variable [#controlling-a-text-area-with-a-state-variable]
      • <h3> Pitfall
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> My text area doesn’t update when I type into it [#my-text-area-doesnt-update-when-i-type-into-it]
      • <h3> My text area caret jumps to the beginning on every keystroke [#my-text-area-caret-jumps-to-the-beginning-on-every-keystroke]
      • <h3> I’m getting an error: “A component is changing an uncontrolled input to be controlled” [#im-getting-an-error-a-component-is-changing-an-uncontrolled-input-to-be-controlled]
    • <h2> On this page
235/reference/react-dom/components/textarea
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> Common components (e.g. &lt;div&gt;)
    • <h2> Reference [#reference]
      • <h3> Common components (e.g. &lt;div&gt;) [#common]
      • <h3> ref callback function [#ref-callback]
      • <h3> Canary
      • <h3> React event object [#react-event-object]
      • <h3> AnimationEvent handler function [#animationevent-handler]
      • <h3> ClipboardEvent handler function [#clipboadevent-handler]
      • <h3> CompositionEvent handler function [#compositionevent-handler]
      • <h3> DragEvent handler function [#dragevent-handler]
      • <h3> FocusEvent handler function [#focusevent-handler]
      • <h3> Event handler function [#event-handler]
      • <h3> InputEvent handler function [#inputevent-handler]
      • <h3> KeyboardEvent handler function [#keyboardevent-handler]
      • <h3> MouseEvent handler function [#mouseevent-handler]
      • <h3> PointerEvent handler function [#pointerevent-handler]
      • <h3> TouchEvent handler function [#touchevent-handler]
      • <h3> TransitionEvent handler function [#transitionevent-handler]
      • <h3> UIEvent handler function [#uievent-handler]
      • <h3> WheelEvent handler function [#wheelevent-handler]
    • <h2> Usage [#usage]
      • <h3> Applying CSS styles [#applying-css-styles]
      • <h3> Manipulating a DOM node with a ref [#manipulating-a-dom-node-with-a-ref]
      • <h3> Dangerously setting the inner HTML [#dangerously-setting-the-inner-html]
      • <h3> Handling mouse events [#handling-mouse-events]
      • <h3> Handling pointer events [#handling-pointer-events]
      • <h3> Handling focus events [#handling-focus-events]
      • <h3> Handling keyboard events [#handling-keyboard-events]
    • <h2> On this page
345/reference/react-dom/components/common
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> useRef
    • <h2> Reference [#reference]
      • <h3> useRef(initialValue) [#useref]
    • <h2> Usage [#usage]
      • <h3> Referencing a value with a ref [#referencing-a-value-with-a-ref]
      • <h3> Pitfall
      • <h3> Manipulating the DOM with a ref [#manipulating-the-dom-with-a-ref]
      • <h3> Avoiding recreating the ref contents [#avoiding-recreating-the-ref-contents]
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> I can’t get a ref to a custom component [#i-cant-get-a-ref-to-a-custom-component]
    • <h2> On this page
165/reference/react/useRef
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> React calls Components and Hooks
    • <h2> Never call component functions directly [#never-call-component-functions-directly]
    • <h2> Never pass around Hooks as regular values [#never-pass-around-hooks-as-regular-values]
      • <h3> Don’t dynamically mutate a Hook [#dont-dynamically-mutate-a-hook]
      • <h3> Don’t dynamically use Hooks [#dont-dynamically-use-hooks]
    • <h2> On this page
115/reference/rules/react-calls-components-and-hooks
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> useReducer
    • <h2> Reference [#reference]
      • <h3> useReducer(reducer, initialArg, init?) [#usereducer]
      • <h3> dispatch function [#dispatch]
    • <h2> Usage [#usage]
      • <h3> Adding a reducer to a component [#adding-a-reducer-to-a-component]
      • <h3> Writing the reducer function [#writing-the-reducer-function]
      • <h3> Pitfall
      • <h3> Avoiding recreating the initial state [#avoiding-recreating-the-initial-state]
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> I’ve dispatched an action, but logging gives me the old state value [#ive-dispatched-an-action-but-logging-gives-me-the-old-state-value]
      • <h3> I’ve dispatched an action, but the screen doesn’t update [#ive-dispatched-an-action-but-the-screen-doesnt-update]
      • <h3> A part of my reducer state becomes undefined after dispatching [#a-part-of-my-reducer-state-becomes-undefined-after-dispatching]
      • <h3> My entire reducer state becomes undefined after dispatching [#my-entire-reducer-state-becomes-undefined-after-dispatching]
      • <h3> I’m getting an error: “Too many re-renders” [#im-getting-an-error-too-many-re-renders]
      • <h3> My reducer or initializer function runs twice [#my-reducer-or-initializer-function-runs-twice]
    • <h2> On this page
225/reference/react/useReducer
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> Legacy React APIs
    • <h2> Legacy APIs [#legacy-apis]
    • <h2> Deprecated APIs [#deprecated-apis]
      • <h3> Deprecated
    • <h2> On this page
105/reference/react/legacy
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> memo
    • <h2> Reference [#reference]
      • <h3> memo(Component, arePropsEqual?) [#memo]
    • <h2> Usage [#usage]
      • <h3> Skipping re-rendering when props are unchanged [#skipping-re-rendering-when-props-are-unchanged]
      • <h3> Note
      • <h3> Updating a memoized component using state [#updating-a-memoized-component-using-state]
      • <h3> Updating a memoized component using a context [#updating-a-memoized-component-using-a-context]
      • <h3> Minimizing props changes [#minimizing-props-changes]
      • <h3> Specifying a custom comparison function [#specifying-a-custom-comparison-function]
      • <h3> Pitfall
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> My component re-renders when a prop is an object, array, or function [#my-component-rerenders-when-a-prop-is-an-object-or-array]
    • <h2> On this page
195/reference/react/memo
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> useDebugValue
    • <h2> Reference [#reference]
      • <h3> useDebugValue(value, format?) [#usedebugvalue]
    • <h2> Usage [#usage]
      • <h3> Adding a label to a custom Hook [#adding-a-label-to-a-custom-hook]
      • <h3> Note
      • <h3> Deferring formatting of a debug value [#deferring-formatting-of-a-debug-value]
    • <h2> On this page
135/reference/react/useDebugValue
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> useEffect
    • <h2> Reference [#reference]
      • <h3> useEffect(setup, dependencies?) [#useeffect]
    • <h2> Usage [#usage]
      • <h3> Connecting to an external system [#connecting-to-an-external-system]
      • <h3> Note
      • <h3> Wrapping Effects in custom Hooks [#wrapping-effects-in-custom-hooks]
      • <h3> Controlling a non-React widget [#controlling-a-non-react-widget]
      • <h3> Fetching data with Effects [#fetching-data-with-effects]
      • <h3> Specifying reactive dependencies [#specifying-reactive-dependencies]
      • <h3> Pitfall
      • <h3> Updating state based on previous state from an Effect [#updating-state-based-on-previous-state-from-an-effect]
      • <h3> Removing unnecessary object dependencies [#removing-unnecessary-object-dependencies]
      • <h3> Removing unnecessary function dependencies [#removing-unnecessary-function-dependencies]
      • <h3> Reading the latest props and state from an Effect [#reading-the-latest-props-and-state-from-an-effect]
      • <h3> Under Construction
      • <h3> Displaying different content on the server and the client [#displaying-different-content-on-the-server-and-the-client]
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> My Effect runs twice when the component mounts [#my-effect-runs-twice-when-the-component-mounts]
      • <h3> My Effect runs after every re-render [#my-effect-runs-after-every-re-render]
      • <h3> My Effect keeps re-running in an infinite cycle [#my-effect-keeps-re-running-in-an-infinite-cycle]
      • <h3> My cleanup logic runs even though my component didn’t unmount [#my-cleanup-logic-runs-even-though-my-component-didnt-unmount]
      • <h3> My Effect does something visual, and I see a flicker before it runs [#my-effect-does-something-visual-and-i-see-a-flicker-before-it-runs]
    • <h2> On this page
295/reference/react/useEffect
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> &lt;input&gt;
    • <h2> Reference [#reference]
      • <h3> &lt;input&gt; [#input]
      • <h3> Canary
    • <h2> Usage [#usage]
      • <h3> Displaying inputs of different types [#displaying-inputs-of-different-types]
      • <h3> Providing a label for an input [#providing-a-label-for-an-input]
      • <h3> Providing an initial value for an input [#providing-an-initial-value-for-an-input]
      • <h3> Reading the input values when submitting a form [#reading-the-input-values-when-submitting-a-form]
      • <h3> Note
      • <h3> Pitfall
      • <h3> Controlling an input with a state variable [#controlling-an-input-with-a-state-variable]
      • <h3> Pitfall
      • <h3> Optimizing re-rendering on every keystroke [#optimizing-re-rendering-on-every-keystroke]
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> My text input doesn’t update when I type into it [#my-text-input-doesnt-update-when-i-type-into-it]
      • <h3> My checkbox doesn’t update when I click on it [#my-checkbox-doesnt-update-when-i-click-on-it]
      • <h3> Pitfall
      • <h3> My input caret jumps to the beginning on every keystroke [#my-input-caret-jumps-to-the-beginning-on-every-keystroke]
      • <h3> I’m getting an error: “A component is changing an uncontrolled input to be controlled” [#im-getting-an-error-a-component-is-changing-an-uncontrolled-input-to-be-controlled]
    • <h2> On this page
265/reference/react-dom/components/input
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> React Reference Overview
    • <h2> React [#react]
    • <h2> React DOM [#react-dom]
    • <h2> Rules of React [#rules-of-react]
    • <h2> Legacy APIs [#legacy-apis]
    • <h2> On this page
115/reference/react
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> useState
    • <h2> Reference [#reference]
      • <h3> useState(initialState) [#usestate]
      • <h3> set functions, like setSomething(nextState) [#setstate]
    • <h2> Usage [#usage]
      • <h3> Adding state to a component [#adding-state-to-a-component]
      • <h3> Pitfall
      • <h3> Updating state based on the previous state [#updating-state-based-on-the-previous-state]
      • <h3> Updating objects and arrays in state [#updating-objects-and-arrays-in-state]
      • <h3> Avoiding recreating the initial state [#avoiding-recreating-the-initial-state]
      • <h3> Resetting state with a key [#resetting-state-with-a-key]
      • <h3> Storing information from previous renders [#storing-information-from-previous-renders]
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> I’ve updated the state, but logging gives me the old value [#ive-updated-the-state-but-logging-gives-me-the-old-value]
      • <h3> I’ve updated the state, but the screen doesn’t update [#ive-updated-the-state-but-the-screen-doesnt-update]
      • <h3> I’m getting an error: “Too many re-renders” [#im-getting-an-error-too-many-re-renders]
      • <h3> My initializer or updater function runs twice [#my-initializer-or-updater-function-runs-twice]
      • <h3> I’m trying to set state to a function, but it gets called instead [#im-trying-to-set-state-to-a-function-but-it-gets-called-instead]
    • <h2> On this page
245/reference/react/useState
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> isValidElement
    • <h2> Reference [#reference]
      • <h3> isValidElement(value) [#isvalidelement]
    • <h2> Usage [#usage]
      • <h3> Checking if something is a React element [#checking-if-something-is-a-react-element]
    • <h2> On this page
115/reference/react/isValidElement
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> useSyncExternalStore
    • <h2> Reference [#reference]
      • <h3> useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot?) [#usesyncexternalstore]
    • <h2> Usage [#usage]
      • <h3> Subscribing to an external store [#subscribing-to-an-external-store]
      • <h3> Note
      • <h3> Subscribing to a browser API [#subscribing-to-a-browser-api]
      • <h3> Extracting the logic to a custom Hook [#extracting-the-logic-to-a-custom-hook]
      • <h3> Adding support for server rendering [#adding-support-for-server-rendering]
      • <h3> Note
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> I’m getting an error: “The result of getSnapshot should be cached” [#im-getting-an-error-the-result-of-getsnapshot-should-be-cached]
      • <h3> My subscribe function gets called after every re-render [#my-subscribe-function-gets-called-after-every-re-render]
    • <h2> On this page
195/reference/react/useSyncExternalStore
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> useId
    • <h2> Reference [#reference]
      • <h3> useId() [#useid]
    • <h2> Usage [#usage]
      • <h3> Pitfall
      • <h3> Generating unique IDs for accessibility attributes [#generating-unique-ids-for-accessibility-attributes]
      • <h3> Pitfall
      • <h3> Generating IDs for several related elements [#generating-ids-for-several-related-elements]
      • <h3> Specifying a shared prefix for all generated IDs [#specifying-a-shared-prefix-for-all-generated-ids]
      • <h3> Using the same ID prefix on the client and the server [#using-the-same-id-prefix-on-the-client-and-the-server]
    • <h2> On this page
165/reference/react/useId
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> createPortal
    • <h2> Reference [#reference]
      • <h3> createPortal(children, domNode, key?) [#createportal]
    • <h2> Usage [#usage]
      • <h3> Rendering to a different part of the DOM [#rendering-to-a-different-part-of-the-dom]
      • <h3> Rendering a modal dialog with a portal [#rendering-a-modal-dialog-with-a-portal]
      • <h3> Pitfall
      • <h3> Rendering React components into non-React server markup [#rendering-react-components-into-non-react-server-markup]
      • <h3> Rendering React components into non-React DOM nodes [#rendering-react-components-into-non-react-dom-nodes]
    • <h2> On this page
155/reference/react-dom/createPortal
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> &lt;select&gt;
    • <h2> Reference [#reference]
      • <h3> &lt;select&gt; [#select]
    • <h2> Usage [#usage]
      • <h3> Displaying a select box with options [#displaying-a-select-box-with-options]
      • <h3> Providing a label for a select box [#providing-a-label-for-a-select-box]
      • <h3> Providing an initially selected option [#providing-an-initially-selected-option]
      • <h3> Pitfall
      • <h3> Enabling multiple selection [#enabling-multiple-selection]
      • <h3> Reading the select box value when submitting a form [#reading-the-select-box-value-when-submitting-a-form]
      • <h3> Note
      • <h3> Pitfall
      • <h3> Controlling a select box with a state variable [#controlling-a-select-box-with-a-state-variable]
      • <h3> Pitfall
    • <h2> On this page
205/reference/react-dom/components/select
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> startTransition
    • <h2> Reference [#reference]
      • <h3> startTransition(scope) [#starttransitionscope]
    • <h2> Usage [#usage]
      • <h3> Marking a state update as a non-blocking Transition [#marking-a-state-update-as-a-non-blocking-transition]
      • <h3> Note
    • <h2> On this page
125/reference/react/startTransition
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> &lt;Profiler&gt;
    • <h2> Reference [#reference]
      • <h3> &lt;Profiler&gt; [#profiler]
      • <h3> onRender callback [#onrender-callback]
    • <h2> Usage [#usage]
      • <h3> Measuring rendering performance programmatically [#measuring-rendering-performance-programmatically]
      • <h3> Pitfall
      • <h3> Note
      • <h3> Measuring different parts of the application [#measuring-different-parts-of-the-application]
    • <h2> On this page
155/reference/react/Profiler
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> &lt;StrictMode&gt;
    • <h2> Reference [#reference]
      • <h3> &lt;StrictMode&gt; [#strictmode]
    • <h2> Usage [#usage]
      • <h3> Enabling Strict Mode for entire app [#enabling-strict-mode-for-entire-app]
      • <h3> Note
      • <h3> Enabling Strict Mode for a part of the app [#enabling-strict-mode-for-a-part-of-the-app]
      • <h3> Fixing bugs found by double rendering in development [#fixing-bugs-found-by-double-rendering-in-development]
      • <h3> Note
      • <h3> Fixing bugs found by re-running Effects in development [#fixing-bugs-found-by-re-running-effects-in-development]
      • <h3> Fixing deprecation warnings enabled by Strict Mode [#fixing-deprecation-warnings-enabled-by-strict-mode]
    • <h2> On this page
175/reference/react/StrictMode
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> Built-in React APIs
    • <h2> Resource APIs [#resource-apis]
    • <h2> On this page
85/reference/react/apis
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> forwardRef
    • <h2> Reference [#reference]
      • <h3> forwardRef(render) [#forwardref]
      • <h3> render function [#render-function]
    • <h2> Usage [#usage]
      • <h3> Exposing a DOM node to the parent component [#exposing-a-dom-node-to-the-parent-component]
      • <h3> Forwarding a ref through multiple components [#forwarding-a-ref-through-multiple-components]
      • <h3> Exposing an imperative handle instead of a DOM node [#exposing-an-imperative-handle-instead-of-a-dom-node]
      • <h3> Pitfall
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> My component is wrapped in forwardRef, but the ref to it is always null [#my-component-is-wrapped-in-forwardref-but-the-ref-to-it-is-always-null]
    • <h2> On this page
175/reference/react/forwardRef
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> &lt;option&gt;
    • <h2> Reference [#reference]
      • <h3> &lt;option&gt; [#option]
    • <h2> Usage [#usage]
      • <h3> Displaying a select box with options [#displaying-a-select-box-with-options]
    • <h2> On this page
115/reference/react-dom/components/option
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> renderToStaticNodeStream
    • <h2> Reference [#reference]
      • <h3> renderToStaticNodeStream(reactNode, options?) [#rendertostaticnodestream]
    • <h2> Usage [#usage]
      • <h3> Rendering a React tree as static HTML to a Node.js Readable Stream [#rendering-a-react-tree-as-static-html-to-a-nodejs-readable-stream]
      • <h3> Pitfall
    • <h2> On this page
125/reference/react-dom/server/renderToStaticNodeStream
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> useImperativeHandle
    • <h2> Reference [#reference]
      • <h3> useImperativeHandle(ref, createHandle, dependencies?) [#useimperativehandle]
    • <h2> Usage [#usage]
      • <h3> Exposing a custom ref handle to the parent component [#exposing-a-custom-ref-handle-to-the-parent-component]
      • <h3> Exposing your own imperative methods [#exposing-your-own-imperative-methods]
      • <h3> Pitfall
    • <h2> On this page
135/reference/react/useImperativeHandle
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> renderToStaticMarkup
    • <h2> Reference [#reference]
      • <h3> renderToStaticMarkup(reactNode, options?) [#rendertostaticmarkup]
    • <h2> Usage [#usage]
      • <h3> Rendering a non-interactive React tree as HTML to a string [#rendering-a-non-interactive-react-tree-as-html-to-a-string]
      • <h3> Pitfall
    • <h2> On this page
125/reference/react-dom/server/renderToStaticMarkup
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> &lt;progress&gt;
    • <h2> Reference [#reference]
      • <h3> &lt;progress&gt; [#progress]
    • <h2> Usage [#usage]
      • <h3> Controlling a progress indicator [#controlling-a-progress-indicator]
    • <h2> On this page
115/reference/react-dom/components/progress
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> useMemo
    • <h2> Reference [#reference]
      • <h3> useMemo(calculateValue, dependencies) [#usememo]
      • <h3> Note
    • <h2> Usage [#usage]
      • <h3> Skipping expensive recalculations [#skipping-expensive-recalculations]
      • <h3> Note
      • <h3> Skipping re-rendering of components [#skipping-re-rendering-of-components]
      • <h3> Memoizing a dependency of another Hook [#memoizing-a-dependency-of-another-hook]
      • <h3> Memoizing a function [#memoizing-a-function]
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> My calculation runs twice on every re-render [#my-calculation-runs-twice-on-every-re-render]
      • <h3> My useMemo call is supposed to return an object, but returns undefined [#my-usememo-call-is-supposed-to-return-an-object-but-returns-undefined]
      • <h3> Every time my component renders, the calculation in useMemo re-runs [#every-time-my-component-renders-the-calculation-in-usememo-re-runs]
      • <h3> I need to call useMemo for each list item in a loop, but it’s not allowed [#i-need-to-call-usememo-for-each-list-item-in-a-loop-but-its-not-allowed]
    • <h2> On this page
215/reference/react/useMemo
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> React DOM Components
    • <h2> Common components [#common-components]
    • <h2> Form components [#form-components]
    • <h2> Resource and Metadata Components [#resource-and-metadata-components]
    • <h2> All HTML components [#all-html-components]
      • <h3> Note
      • <h3> Custom HTML elements [#custom-html-elements]
      • <h3> Note
    • <h2> All SVG components [#all-svg-components]
      • <h3> Note
    • <h2> On this page
165/reference/react-dom/components
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> useTransition
    • <h2> Reference [#reference]
      • <h3> useTransition() [#usetransition]
      • <h3> startTransition function [#starttransition]
    • <h2> Usage [#usage]
      • <h3> Marking a state update as a non-blocking Transition [#marking-a-state-update-as-a-non-blocking-transition]
      • <h3> Updating the parent component in a Transition [#updating-the-parent-component-in-a-transition]
      • <h3> Displaying a pending visual state during the Transition [#displaying-a-pending-visual-state-during-the-transition]
      • <h3> Preventing unwanted loading indicators [#preventing-unwanted-loading-indicators]
      • <h3> Note
      • <h3> Building a Suspense-enabled router [#building-a-suspense-enabled-router]
      • <h3> Note
      • <h3> Displaying an error to users with an error boundary [#displaying-an-error-to-users-with-error-boundary]
      • <h3> Canary
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> Updating an input in a Transition doesn’t work [#updating-an-input-in-a-transition-doesnt-work]
      • <h3> React doesn’t treat my state update as a Transition [#react-doesnt-treat-my-state-update-as-a-transition]
      • <h3> I want to call useTransition from outside a component [#i-want-to-call-usetransition-from-outside-a-component]
      • <h3> The function I pass to startTransition executes immediately [#the-function-i-pass-to-starttransition-executes-immediately]
    • <h2> On this page
255/reference/react/useTransition
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> &lt;Fragment&gt; (&lt;&gt;...&lt;/&gt;)
    • <h2> Reference [#reference]
      • <h3> &lt;Fragment&gt; [#fragment]
    • <h2> Usage [#usage]
      • <h3> Returning multiple elements [#returning-multiple-elements]
      • <h3> Assigning multiple elements to a variable [#assigning-multiple-elements-to-a-variable]
      • <h3> Grouping elements with text [#grouping-elements-with-text]
      • <h3> Rendering a list of Fragments [#rendering-a-list-of-fragments]
    • <h2> On this page
145/reference/react/Fragment
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> &lt;Suspense&gt;
    • <h2> Reference [#reference]
      • <h3> &lt;Suspense&gt; [#suspense]
    • <h2> Usage [#usage]
      • <h3> Displaying a fallback while content is loading [#displaying-a-fallback-while-content-is-loading]
      • <h3> Note
      • <h3> Revealing content together at once [#revealing-content-together-at-once]
      • <h3> Revealing nested content as it loads [#revealing-nested-content-as-it-loads]
      • <h3> Showing stale content while fresh content is loading [#showing-stale-content-while-fresh-content-is-loading]
      • <h3> Note
      • <h3> Preventing already revealed content from hiding [#preventing-already-revealed-content-from-hiding]
      • <h3> Note
      • <h3> Indicating that a Transition is happening [#indicating-that-a-transition-is-happening]
      • <h3> Resetting Suspense boundaries on navigation [#resetting-suspense-boundaries-on-navigation]
      • <h3> Providing a fallback for server errors and client-only content [#providing-a-fallback-for-server-errors-and-client-only-content]
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> How do I prevent the UI from being replaced by a fallback during an update? [#preventing-unwanted-fallbacks]
    • <h2> On this page
235/reference/react/Suspense
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> Server React DOM APIs
    • <h2> Server APIs for Node.js Streams [#server-apis-for-nodejs-streams]
    • <h2> Server APIs for Web Streams [#server-apis-for-web-streams]
    • <h2> Server APIs for non-streaming environments [#server-apis-for-non-streaming-environments]
    • <h2> Deprecated server APIs [#deprecated-server-apis]
      • <h3> Deprecated
    • <h2> On this page
125/reference/react-dom/server
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> Rules of Hooks
    • <h2> Only call Hooks at the top level [#only-call-hooks-at-the-top-level]
      • <h3> Note
    • <h2> Only call Hooks from React functions [#only-call-hooks-from-react-functions]
    • <h2> On this page
105/reference/rules/rules-of-hooks
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> lazy
    • <h2> Reference [#reference]
      • <h3> lazy(load) [#lazy]
      • <h3> load function [#load]
    • <h2> Usage [#usage]
      • <h3> Lazy-loading components with Suspense [#suspense-for-code-splitting]
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> My lazy component’s state gets reset unexpectedly [#my-lazy-components-state-gets-reset-unexpectedly]
    • <h2> On this page
145/reference/react/lazy
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> useCallback
    • <h2> Reference [#reference]
      • <h3> useCallback(fn, dependencies) [#usecallback]
    • <h2> Usage [#usage]
      • <h3> Skipping re-rendering of components [#skipping-re-rendering-of-components]
      • <h3> Note
      • <h3> Updating state from a memoized callback [#updating-state-from-a-memoized-callback]
      • <h3> Preventing an Effect from firing too often [#preventing-an-effect-from-firing-too-often]
      • <h3> Optimizing a custom Hook [#optimizing-a-custom-hook]
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> Every time my component renders, useCallback returns a different function [#every-time-my-component-renders-usecallback-returns-a-different-function]
      • <h3> I need to call useCallback for each list item in a loop, but it’s not allowed [#i-need-to-call-usememo-for-each-list-item-in-a-loop-but-its-not-allowed]
    • <h2> On this page
185/reference/react/useCallback
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> Built-in React Hooks
    • <h2> State Hooks [#state-hooks]
    • <h2> Context Hooks [#context-hooks]
    • <h2> Ref Hooks [#ref-hooks]
    • <h2> Effect Hooks [#effect-hooks]
    • <h2> Performance Hooks [#performance-hooks]
    • <h2> Other Hooks [#other-hooks]
    • <h2> Your own Hooks [#your-own-hooks]
    • <h2> On this page
145/reference/react/hooks
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> useContext
    • <h2> Reference [#reference]
      • <h3> useContext(SomeContext) [#usecontext]
    • <h2> Usage [#usage]
      • <h3> Passing data deeply into the tree [#passing-data-deeply-into-the-tree]
      • <h3> Pitfall
      • <h3> Updating data passed via context [#updating-data-passed-via-context]
      • <h3> Specifying a fallback default value [#specifying-a-fallback-default-value]
      • <h3> Overriding context for a part of the tree [#overriding-context-for-a-part-of-the-tree]
      • <h3> Optimizing re-renders when passing objects and functions [#optimizing-re-renders-when-passing-objects-and-functions]
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> My component doesn’t see the value from my provider [#my-component-doesnt-see-the-value-from-my-provider]
      • <h3> I am always getting undefined from my context although the default value is different [#i-am-always-getting-undefined-from-my-context-although-the-default-value-is-different]
    • <h2> On this page
195/reference/react/useContext
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> hydrateRoot
    • <h2> Reference [#reference]
      • <h3> hydrateRoot(domNode, reactNode, options?) [#hydrateroot]
      • <h3> root.render(reactNode) [#root-render]
      • <h3> root.unmount() [#root-unmount]
    • <h2> Usage [#usage]
      • <h3> Hydrating server-rendered HTML [#hydrating-server-rendered-html]
      • <h3> Pitfall
      • <h3> Hydrating an entire document [#hydrating-an-entire-document]
      • <h3> Suppressing unavoidable hydration mismatch errors [#suppressing-unavoidable-hydration-mismatch-errors]
      • <h3> Handling different client and server content [#handling-different-client-and-server-content]
      • <h3> Pitfall
      • <h3> Updating a hydrated root component [#updating-a-hydrated-root-component]
      • <h3> Show a dialog for uncaught errors [#show-a-dialog-for-uncaught-errors]
      • <h3> Canary
      • <h3> Displaying Error Boundary errors [#displaying-error-boundary-errors]
      • <h3> Canary
      • <h3> Show a dialog for recoverable hydration mismatch errors [#show-a-dialog-for-recoverable-hydration-mismatch-errors]
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> I’m getting an error: “You passed a second argument to root.render” [#im-getting-an-error-you-passed-a-second-argument-to-root-render]
    • <h2> On this page
265/reference/react-dom/client/hydrateRoot
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> React DOM APIs
    • <h2> APIs [#apis]
    • <h2> Resource Preloading APIs [#resource-preloading-apis]
    • <h2> Entry points [#entry-points]
    • <h2> Deprecated APIs [#deprecated-apis]
      • <h3> Deprecated
    • <h2> On this page
125/reference/react-dom
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> createRoot
    • <h2> Reference [#reference]
      • <h3> createRoot(domNode, options?) [#createroot]
      • <h3> root.render(reactNode) [#root-render]
      • <h3> root.unmount() [#root-unmount]
    • <h2> Usage [#usage]
      • <h3> Rendering an app fully built with React [#rendering-an-app-fully-built-with-react]
      • <h3> Note
      • <h3> Pitfall
      • <h3> Rendering a page partially built with React [#rendering-a-page-partially-built-with-react]
      • <h3> Updating a root component [#updating-a-root-component]
      • <h3> Show a dialog for uncaught errors [#show-a-dialog-for-uncaught-errors]
      • <h3> Canary
      • <h3> Displaying Error Boundary errors [#displaying-error-boundary-errors]
      • <h3> Canary
      • <h3> Displaying a dialog for recoverable errors [#displaying-a-dialog-for-recoverable-errors]
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> I’ve created a root, but nothing is displayed [#ive-created-a-root-but-nothing-is-displayed]
      • <h3> I’m getting an error: “You passed a second argument to root.render” [#im-getting-an-error-you-passed-a-second-argument-to-root-render]
      • <h3> I’m getting an error: “Target container is not a DOM element” [#im-getting-an-error-target-container-is-not-a-dom-element]
      • <h3> I’m getting an error: “Functions are not valid as a React child.” [#im-getting-an-error-functions-are-not-valid-as-a-react-child]
      • <h3> My server-rendered HTML gets re-created from scratch [#my-server-rendered-html-gets-re-created-from-scratch]
    • <h2> On this page
285/reference/react-dom/client/createRoot
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> Client React DOM APIs
    • <h2> Client APIs [#client-apis]
    • <h2> Browser support [#browser-support]
    • <h2> On this page
95/reference/react-dom/client
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> Built-in React DOM Hooks
    • <h2> Form Hooks [#form-hooks]
      • <h3> Canary
    • <h2> On this page
95/reference/react-dom/hooks
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> createElement
    • <h2> Reference [#reference]
      • <h3> createElement(type, props, ...children) [#createelement]
    • <h2> Usage [#usage]
      • <h3> Creating an element without JSX [#creating-an-element-without-jsx]
    • <h2> On this page
115/reference/react/createElement
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> createContext
    • <h2> Reference [#reference]
      • <h3> createContext(defaultValue) [#createcontext]
      • <h3> SomeContext.Provider [#provider]
      • <h3> SomeContext.Consumer [#consumer]
    • <h2> Usage [#usage]
      • <h3> Creating context [#creating-context]
      • <h3> Importing and exporting context from a file [#importing-and-exporting-context-from-a-file]
    • <h2> Troubleshooting [#troubleshooting]
      • <h3> I can’t find a way to change the context value [#i-cant-find-a-way-to-change-the-context-value]
    • <h2> On this page
165/reference/react/createContext
  • <h3> react@18.3.1
  • <h3> react-dom@18.3.1
  • <h3> Rules of React
  • <h3> React Server Components
  • <h3> Legacy APIs
  • <h1> useDeferredValue
    • <h2> Reference [#reference]
      • <h3> useDeferredValue(value, initialValue?) [#usedeferredvalue]
      • <h3> Canary
    • <h2> Usage [#usage]
      • <h3> Showing stale content while fresh content is loading [#showing-stale-content-while-fresh-content-is-loading]
      • <h3> Note
      • <h3> Indicating that the content is stale [#indicating-that-the-content-is-stale]
      • <h3> Deferring re-rendering for a part of the UI [#deferring-re-rendering-for-a-part-of-the-ui]
      • <h3> Pitfall
    • <h2> On this page
165/reference/react/useDeferredValue
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Tutorial: Tic-Tac-Toe
    • <h3> Note
    • <h3> What are you building? [#what-are-you-building]
    • <h2> Setup for the tutorial [#setup-for-the-tutorial]
      • <h3> Note
    • <h2> Overview [#overview]
      • <h3> Inspecting the starter code [#inspecting-the-starter-code]
      • <h3> Building the board [#building-the-board]
      • <h3> Note
      • <h3> Passing data through props [#passing-data-through-props]
      • <h3> Making an interactive component [#making-an-interactive-component]
      • <h3> Note
      • <h3> React Developer Tools [#react-developer-tools]
      • <h3> Note
    • <h2> Completing the game [#completing-the-game]
      • <h3> Lifting state up [#lifting-state-up]
      • <h3> Note
      • <h3> Note
      • <h3> Why immutability is important [#why-immutability-is-important]
      • <h3> Taking turns [#taking-turns]
      • <h3> Declaring a winner [#declaring-a-winner]
      • <h3> Note
    • <h2> Adding time travel [#adding-time-travel]
      • <h3> Storing a history of moves [#storing-a-history-of-moves]
      • <h3> Lifting state up, again [#lifting-state-up-again]
      • <h3> Showing the past moves [#showing-the-past-moves]
      • <h3> Picking a key [#picking-a-key]
      • <h3> Implementing time travel [#implementing-time-travel]
      • <h3> Final cleanup [#final-cleanup]
      • <h3> Wrapping up [#wrapping-up]
    • <h2> On this page
334/learn/tutorial-tic-tac-toe
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Quick Start
    • <h3> You will learn
    • <h2> Creating and nesting components [#components]
    • <h2> Writing markup with JSX [#writing-markup-with-jsx]
    • <h2> Adding styles [#adding-styles]
    • <h2> Displaying data [#displaying-data]
    • <h2> Conditional rendering [#conditional-rendering]
    • <h2> Rendering lists [#rendering-lists]
    • <h2> Responding to events [#responding-to-events]
    • <h2> Updating the screen [#updating-the-screen]
    • <h2> Using Hooks [#using-hooks]
    • <h2> Sharing data between components [#sharing-data-between-components]
    • <h2> Next Steps [#next-steps]
    • <h2> On this page
163/learn
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Render and Commit
    • <h3> You will learn
    • <h2> Step 1: Trigger a render [#step-1-trigger-a-render]
      • <h3> Initial render [#initial-render]
      • <h3> Re-renders when state updates [#re-renders-when-state-updates]
    • <h2> Step 2: React renders your components [#step-2-react-renders-your-components]
      • <h3> Pitfall
    • <h2> Step 3: React commits changes to the DOM [#step-3-react-commits-changes-to-the-dom]
    • <h2> Epilogue: Browser paint [#epilogue-browser-paint]
    • <h2> Recap [#recap]
    • <h2> On this page
133/learn/render-and-commit
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Preserving and Resetting State
    • <h3> You will learn
    • <h2> State is tied to a position in the render tree [#state-is-tied-to-a-position-in-the-tree]
    • <h2> Same component at the same position preserves state [#same-component-at-the-same-position-preserves-state]
      • <h3> Pitfall
    • <h2> Different components at the same position reset state [#different-components-at-the-same-position-reset-state]
      • <h3> Pitfall
    • <h2> Resetting state at the same position [#resetting-state-at-the-same-position]
      • <h3> Option 1: Rendering a component in different positions [#option-1-rendering-a-component-in-different-positions]
      • <h3> Option 2: Resetting state with a key [#option-2-resetting-state-with-a-key]
      • <h3> Note
      • <h3> Resetting a form with a key [#resetting-a-form-with-a-key]
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
173/learn/preserving-and-resetting-state
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Conditional Rendering
    • <h3> You will learn
    • <h2> Conditionally returning JSX [#conditionally-returning-jsx]
      • <h3> Conditionally returning nothing with null [#conditionally-returning-nothing-with-null]
    • <h2> Conditionally including JSX [#conditionally-including-jsx]
      • <h3> Conditional (ternary) operator (? :) [#conditional-ternary-operator--]
      • <h3> Logical AND operator (&amp;&amp;) [#logical-and-operator-]
      • <h3> Pitfall
      • <h3> Conditionally assigning JSX to a variable [#conditionally-assigning-jsx-to-a-variable]
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
143/learn/conditional-rendering
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Using TypeScript
    • <h3> You will learn
    • <h2> Installation [#installation]
      • <h3> Adding TypeScript to an existing React project [#adding-typescript-to-an-existing-react-project]
    • <h2> TypeScript with React Components [#typescript-with-react-components]
      • <h3> Note
      • <h3> Note
    • <h2> Example Hooks [#example-hooks]
      • <h3> useState [#typing-usestate]
      • <h3> useReducer [#typing-usereducer]
      • <h3> useContext [#typing-usecontext]
      • <h3> useMemo [#typing-usememo]
      • <h3> useCallback [#typing-usecallback]
    • <h2> Useful Types [#useful-types]
      • <h3> DOM Events [#typing-dom-events]
      • <h3> Children [#typing-children]
      • <h3> Style Props [#typing-style-props]
    • <h2> Further learning [#further-learning]
    • <h2> On this page
213/learn/typescript
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Referencing Values with Refs
    • <h3> You will learn
    • <h2> Adding a ref to your component [#adding-a-ref-to-your-component]
    • <h2> Example: building a stopwatch [#example-building-a-stopwatch]
    • <h2> Differences between refs and state [#differences-between-refs-and-state]
    • <h2> When to use refs [#when-to-use-refs]
    • <h2> Best practices for refs [#best-practices-for-refs]
    • <h2> Refs and the DOM [#refs-and-the-dom]
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
133/learn/referencing-values-with-refs
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Add React to an Existing Project
    • <h3> Note
    • <h2> Using React for an entire subroute of your existing website [#using-react-for-an-entire-subroute-of-your-existing-website]
    • <h2> Using React for a part of your existing page [#using-react-for-a-part-of-your-existing-page]
      • <h3> Step 1: Set up a modular JavaScript environment [#step-1-set-up-a-modular-javascript-environment]
      • <h3> Note
      • <h3> Step 2: Render React components anywhere on the page [#step-2-render-react-components-anywhere-on-the-page]
    • <h2> Using React Native in an existing native mobile app [#using-react-native-in-an-existing-native-mobile-app]
    • <h2> On this page
113/learn/add-react-to-an-existing-project
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Extracting State Logic into a Reducer
    • <h3> You will learn
    • <h2> Consolidate state logic with a reducer [#consolidate-state-logic-with-a-reducer]
      • <h3> Step 1: Move from setting state to dispatching actions [#step-1-move-from-setting-state-to-dispatching-actions]
      • <h3> Note
      • <h3> Step 2: Write a reducer function [#step-2-write-a-reducer-function]
      • <h3> Note
      • <h3> Step 3: Use the reducer from your component [#step-3-use-the-reducer-from-your-component]
    • <h2> Comparing useState and useReducer [#comparing-usestate-and-usereducer]
    • <h2> Writing reducers well [#writing-reducers-well]
    • <h2> Writing concise reducers with Immer [#writing-concise-reducers-with-immer]
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
163/learn/extracting-state-logic-into-a-reducer
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Sharing State Between Components
    • <h3> You will learn
    • <h2> Lifting state up by example [#lifting-state-up-by-example]
      • <h3> Step 1: Remove state from the child components [#step-1-remove-state-from-the-child-components]
      • <h3> Step 2: Pass hardcoded data from the common parent [#step-2-pass-hardcoded-data-from-the-common-parent]
      • <h3> Step 3: Add state to the common parent [#step-3-add-state-to-the-common-parent]
    • <h2> A single source of truth for each state [#a-single-source-of-truth-for-each-state]
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
123/learn/sharing-state-between-components
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Editor Setup
    • <h3> You will learn
    • <h2> Your editor [#your-editor]
    • <h2> Recommended text editor features [#recommended-text-editor-features]
      • <h3> Linting [#linting]
      • <h3> Formatting [#formatting]
    • <h2> On this page
93/learn/editor-setup
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Managing State
    • <h3> In this chapter
    • <h2> Reacting to input with state [#reacting-to-input-with-state]
    • <h2> Ready to learn this topic?
    • <h2> Choosing the state structure [#choosing-the-state-structure]
    • <h2> Ready to learn this topic?
    • <h2> Sharing state between components [#sharing-state-between-components]
    • <h2> Ready to learn this topic?
    • <h2> Preserving and resetting state [#preserving-and-resetting-state]
    • <h2> Ready to learn this topic?
    • <h2> Extracting state logic into a reducer [#extracting-state-logic-into-a-reducer]
    • <h2> Ready to learn this topic?
    • <h2> Passing data deeply with context [#passing-data-deeply-with-context]
    • <h2> Ready to learn this topic?
    • <h2> Scaling up with reducer and context [#scaling-up-with-reducer-and-context]
    • <h2> Ready to learn this topic?
    • <h2> What’s next? [#whats-next]
    • <h2> On this page
203/learn/managing-state
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Queueing a Series of State Updates
    • <h3> You will learn
    • <h2> React batches state updates [#react-batches-state-updates]
    • <h2> Updating the same state multiple times before the next render [#updating-the-same-state-multiple-times-before-the-next-render]
      • <h3> What happens if you update state after replacing it [#what-happens-if-you-update-state-after-replacing-it]
      • <h3> Note
      • <h3> What happens if you replace state after updating it [#what-happens-if-you-replace-state-after-updating-it]
      • <h3> Naming conventions [#naming-conventions]
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
133/learn/queueing-a-series-of-state-updates
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Scaling Up with Reducer and Context
    • <h3> You will learn
    • <h2> Combining a reducer with context [#combining-a-reducer-with-context]
      • <h3> Step 1: Create the context [#step-1-create-the-context]
      • <h3> Step 2: Put state and dispatch into context [#step-2-put-state-and-dispatch-into-context]
      • <h3> Step 3: Use context anywhere in the tree [#step-3-use-context-anywhere-in-the-tree]
    • <h2> Moving all wiring into a single file [#moving-all-wiring-into-a-single-file]
      • <h3> Note
    • <h2> Recap [#recap]
    • <h2> On this page
123/learn/scaling-up-with-reducer-and-context
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Lifecycle of Reactive Effects
    • <h3> You will learn
    • <h2> The lifecycle of an Effect [#the-lifecycle-of-an-effect]
      • <h3> Note
      • <h3> Why synchronization may need to happen more than once [#why-synchronization-may-need-to-happen-more-than-once]
      • <h3> How React re-synchronizes your Effect [#how-react-re-synchronizes-your-effect]
      • <h3> Thinking from the Effect’s perspective [#thinking-from-the-effects-perspective]
      • <h3> How React verifies that your Effect can re-synchronize [#how-react-verifies-that-your-effect-can-re-synchronize]
      • <h3> How React knows that it needs to re-synchronize the Effect [#how-react-knows-that-it-needs-to-re-synchronize-the-effect]
      • <h3> Each Effect represents a separate synchronization process [#each-effect-represents-a-separate-synchronization-process]
    • <h2> Effects “react” to reactive values [#effects-react-to-reactive-values]
      • <h3> What an Effect with empty dependencies means [#what-an-effect-with-empty-dependencies-means]
      • <h3> All variables declared in the component body are reactive [#all-variables-declared-in-the-component-body-are-reactive]
      • <h3> React verifies that you specified every reactive value as a dependency [#react-verifies-that-you-specified-every-reactive-value-as-a-dependency]
      • <h3> Note
      • <h3> What to do when you don’t want to re-synchronize [#what-to-do-when-you-dont-want-to-re-synchronize]
      • <h3> Pitfall
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
223/learn/lifecycle-of-reactive-effects
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Updating Arrays in State
    • <h3> You will learn
    • <h2> Updating arrays without mutation [#updating-arrays-without-mutation]
      • <h3> Pitfall
      • <h3> Adding to an array [#adding-to-an-array]
      • <h3> Removing from an array [#removing-from-an-array]
      • <h3> Transforming an array [#transforming-an-array]
      • <h3> Replacing items in an array [#replacing-items-in-an-array]
      • <h3> Inserting into an array [#inserting-into-an-array]
      • <h3> Making other changes to an array [#making-other-changes-to-an-array]
    • <h2> Updating objects inside arrays [#updating-objects-inside-arrays]
      • <h3> Write concise update logic with Immer [#write-concise-update-logic-with-immer]
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
173/learn/updating-arrays-in-state
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Responding to Events
    • <h3> You will learn
    • <h2> Adding event handlers [#adding-event-handlers]
      • <h3> Pitfall
      • <h3> Reading props in event handlers [#reading-props-in-event-handlers]
      • <h3> Passing event handlers as props [#passing-event-handlers-as-props]
      • <h3> Naming event handler props [#naming-event-handler-props]
      • <h3> Note
    • <h2> Event propagation [#event-propagation]
      • <h3> Pitfall
      • <h3> Stopping propagation [#stopping-propagation]
      • <h3> Passing handlers as alternative to propagation [#passing-handlers-as-alternative-to-propagation]
      • <h3> Preventing default behavior [#preventing-default-behavior]
    • <h2> Can event handlers have side effects? [#can-event-handlers-have-side-effects]
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
193/learn/responding-to-events
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Manipulating the DOM with Refs
    • <h3> You will learn
    • <h2> Getting a ref to the node [#getting-a-ref-to-the-node]
      • <h3> Example: Focusing a text input [#example-focusing-a-text-input]
      • <h3> Example: Scrolling to an element [#example-scrolling-to-an-element]
      • <h3> Canary
    • <h2> Accessing another component’s DOM nodes [#accessing-another-components-dom-nodes]
    • <h2> When React attaches the refs [#when-react-attaches-the-refs]
    • <h2> Best practices for DOM manipulation with refs [#best-practices-for-dom-manipulation-with-refs]
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
143/learn/manipulating-the-dom-with-refs
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Describing the UI
    • <h3> In this chapter
    • <h2> Your first component [#your-first-component]
    • <h2> Ready to learn this topic?
    • <h2> Importing and exporting components [#importing-and-exporting-components]
    • <h2> Ready to learn this topic?
    • <h2> Writing markup with JSX [#writing-markup-with-jsx]
    • <h2> Ready to learn this topic?
    • <h2> JavaScript in JSX with curly braces [#javascript-in-jsx-with-curly-braces]
    • <h2> Ready to learn this topic?
    • <h2> Passing props to a component [#passing-props-to-a-component]
    • <h2> Ready to learn this topic?
    • <h2> Conditional rendering [#conditional-rendering]
    • <h2> Ready to learn this topic?
    • <h2> Rendering lists [#rendering-lists]
    • <h2> Ready to learn this topic?
    • <h2> Keeping components pure [#keeping-components-pure]
    • <h2> Ready to learn this topic?
    • <h2> Your UI as a tree [#your-ui-as-a-tree]
    • <h2> Ready to learn this topic?
    • <h2> What’s next? [#whats-next]
    • <h2> On this page
243/learn/describing-the-ui
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Escape Hatches
    • <h3> In this chapter
    • <h2> Referencing values with refs [#referencing-values-with-refs]
    • <h2> Ready to learn this topic?
    • <h2> Manipulating the DOM with refs [#manipulating-the-dom-with-refs]
    • <h2> Ready to learn this topic?
    • <h2> Synchronizing with Effects [#synchronizing-with-effects]
    • <h2> Ready to learn this topic?
    • <h2> You Might Not Need An Effect [#you-might-not-need-an-effect]
    • <h2> Ready to learn this topic?
    • <h2> Lifecycle of reactive effects [#lifecycle-of-reactive-effects]
    • <h2> Ready to learn this topic?
    • <h2> Separating events from Effects [#separating-events-from-effects]
      • <h3> Under Construction
    • <h2> Ready to learn this topic?
    • <h2> Removing Effect dependencies [#removing-effect-dependencies]
    • <h2> Ready to learn this topic?
    • <h2> Reusing logic with custom Hooks [#reusing-logic-with-custom-hooks]
    • <h2> Ready to learn this topic?
    • <h2> What’s next? [#whats-next]
    • <h2> On this page
233/learn/escape-hatches
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> State as a Snapshot
    • <h3> You will learn
    • <h2> Setting state triggers renders [#setting-state-triggers-renders]
    • <h2> Rendering takes a snapshot in time [#rendering-takes-a-snapshot-in-time]
    • <h2> State over time [#state-over-time]
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
103/learn/state-as-a-snapshot
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Passing Data Deeply with Context
    • <h3> You will learn
    • <h2> The problem with passing props [#the-problem-with-passing-props]
    • <h2> Context: an alternative to passing props [#context-an-alternative-to-passing-props]
      • <h3> Step 1: Create the context [#step-1-create-the-context]
      • <h3> Step 2: Use the context [#step-2-use-the-context]
      • <h3> Step 3: Provide the context [#step-3-provide-the-context]
    • <h2> Using and providing context from the same component [#using-and-providing-context-from-the-same-component]
      • <h3> Note
    • <h2> Context passes through intermediate components [#context-passes-through-intermediate-components]
    • <h2> Before you use context [#before-you-use-context]
    • <h2> Use cases for context [#use-cases-for-context]
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
173/learn/passing-data-deeply-with-context
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Passing Props to a Component
    • <h3> You will learn
    • <h2> Familiar props [#familiar-props]
    • <h2> Passing props to a component [#passing-props-to-a-component]
      • <h3> Step 1: Pass props to the child component [#step-1-pass-props-to-the-child-component]
      • <h3> Note
      • <h3> Step 2: Read props inside the child component [#step-2-read-props-inside-the-child-component]
      • <h3> Pitfall
    • <h2> Specifying a default value for a prop [#specifying-a-default-value-for-a-prop]
    • <h2> Forwarding props with the JSX spread syntax [#forwarding-props-with-the-jsx-spread-syntax]
    • <h2> Passing JSX as children [#passing-jsx-as-children]
    • <h2> How props change over time [#how-props-change-over-time]
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
173/learn/passing-props-to-a-component
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> State: A Component's Memory
    • <h3> You will learn
    • <h2> When a regular variable isn’t enough [#when-a-regular-variable-isnt-enough]
    • <h2> Adding a state variable [#adding-a-state-variable]
      • <h3> Meet your first Hook [#meet-your-first-hook]
      • <h3> Pitfall
      • <h3> Anatomy of useState [#anatomy-of-usestate]
      • <h3> Note
    • <h2> Giving a component multiple state variables [#giving-a-component-multiple-state-variables]
    • <h2> State is isolated and private [#state-is-isolated-and-private]
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
153/learn/state-a-components-memory
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Keeping Components Pure
    • <h3> You will learn
    • <h2> Purity: Components as formulas [#purity-components-as-formulas]
    • <h2> Side Effects: (un)intended consequences [#side-effects-unintended-consequences]
      • <h3> Local mutation: Your component’s little secret [#local-mutation-your-components-little-secret]
    • <h2> Where you can cause side effects [#where-you-_can_-cause-side-effects]
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
113/learn/keeping-components-pure
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Synchronizing with Effects
    • <h3> You will learn
    • <h2> What are Effects and how are they different from events? [#what-are-effects-and-how-are-they-different-from-events]
      • <h3> Note
    • <h2> You might not need an Effect [#you-might-not-need-an-effect]
    • <h2> How to write an Effect [#how-to-write-an-effect]
      • <h3> Step 1: Declare an Effect [#step-1-declare-an-effect]
      • <h3> Pitfall
      • <h3> Step 2: Specify the Effect dependencies [#step-2-specify-the-effect-dependencies]
      • <h3> Pitfall
      • <h3> Step 3: Add cleanup if needed [#step-3-add-cleanup-if-needed]
    • <h2> How to handle the Effect firing twice in development? [#how-to-handle-the-effect-firing-twice-in-development]
      • <h3> Pitfall
      • <h3> Controlling non-React widgets [#controlling-non-react-widgets]
      • <h3> Subscribing to events [#subscribing-to-events]
      • <h3> Triggering animations [#triggering-animations]
      • <h3> Fetching data [#fetching-data]
      • <h3> Sending analytics [#sending-analytics]
      • <h3> Not an Effect: Initializing the application [#not-an-effect-initializing-the-application]
      • <h3> Not an Effect: Buying a product [#not-an-effect-buying-a-product]
    • <h2> Putting it all together [#putting-it-all-together]
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
263/learn/synchronizing-with-effects
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Removing Effect Dependencies
    • <h3> You will learn
    • <h2> Dependencies should match the code [#dependencies-should-match-the-code]
      • <h3> To remove a dependency, prove that it’s not a dependency [#to-remove-a-dependency-prove-that-its-not-a-dependency]
      • <h3> To change the dependencies, change the code [#to-change-the-dependencies-change-the-code]
      • <h3> Pitfall
    • <h2> Removing unnecessary dependencies [#removing-unnecessary-dependencies]
      • <h3> Should this code move to an event handler? [#should-this-code-move-to-an-event-handler]
      • <h3> Is your Effect doing several unrelated things? [#is-your-effect-doing-several-unrelated-things]
      • <h3> Are you reading some state to calculate the next state? [#are-you-reading-some-state-to-calculate-the-next-state]
      • <h3> Do you want to read a value without “reacting” to its changes? [#do-you-want-to-read-a-value-without-reacting-to-its-changes]
      • <h3> Under Construction
      • <h3> Does some reactive value change unintentionally? [#does-some-reactive-value-change-unintentionally]
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
183/learn/removing-effect-dependencies
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Updating Objects in State
    • <h3> You will learn
    • <h2> What’s a mutation? [#whats-a-mutation]
    • <h2> Treat state as read-only [#treat-state-as-read-only]
    • <h2> Copying objects with the spread syntax [#copying-objects-with-the-spread-syntax]
    • <h2> Updating a nested object [#updating-a-nested-object]
      • <h3> Write concise update logic with Immer [#write-concise-update-logic-with-immer]
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
123/learn/updating-objects-in-state
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Installation
    • <h3> In this chapter
    • <h2> Try React [#try-react]
      • <h3> Try React locally [#try-react-locally]
    • <h2> Start a new React project [#start-a-new-react-project]
    • <h2> Add React to an existing project [#add-react-to-an-existing-project]
    • <h2> Next steps [#next-steps]
    • <h2> On this page
103/learn/installation
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Writing Markup with JSX
    • <h3> You will learn
    • <h2> JSX: Putting markup into JavaScript [#jsx-putting-markup-into-javascript]
      • <h3> Note
    • <h2> Converting HTML to JSX [#converting-html-to-jsx]
      • <h3> Note
    • <h2> The Rules of JSX [#the-rules-of-jsx]
      • <h3> 1. Return a single root element [#1-return-a-single-root-element]
      • <h3> 2. Close all the tags [#2-close-all-the-tags]
      • <h3> 3. camelCase all most of the things! [#3-camelcase-salls-most-of-the-things]
      • <h3> Pitfall
      • <h3> Pro-tip: Use a JSX Converter [#pro-tip-use-a-jsx-converter]
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
173/learn/writing-markup-with-jsx
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> JavaScript in JSX with Curly Braces
    • <h3> You will learn
    • <h2> Passing strings with quotes [#passing-strings-with-quotes]
    • <h2> Using curly braces: A window into the JavaScript world [#using-curly-braces-a-window-into-the-javascript-world]
      • <h3> Where to use curly braces [#where-to-use-curly-braces]
    • <h2> Using “double curlies”: CSS and other objects in JSX [#using-double-curlies-css-and-other-objects-in-jsx]
      • <h3> Pitfall
    • <h2> More fun with JavaScript objects and curly braces [#more-fun-with-javascript-objects-and-curly-braces]
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
133/learn/javascript-in-jsx-with-curly-braces
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Understanding Your UI as a Tree
    • <h3> You will learn
    • <h2> Your UI as a tree [#your-ui-as-a-tree]
    • <h2> The Render Tree [#the-render-tree]
    • <h2> The Module Dependency Tree [#the-module-dependency-tree]
    • <h2> Recap [#recap]
    • <h2> On this page
93/learn/understanding-your-ui-as-a-tree
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Separating Events from Effects
    • <h3> You will learn
    • <h2> Choosing between event handlers and Effects [#choosing-between-event-handlers-and-effects]
      • <h3> Event handlers run in response to specific interactions [#event-handlers-run-in-response-to-specific-interactions]
      • <h3> Effects run whenever synchronization is needed [#effects-run-whenever-synchronization-is-needed]
    • <h2> Reactive values and reactive logic [#reactive-values-and-reactive-logic]
      • <h3> Logic inside event handlers is not reactive [#logic-inside-event-handlers-is-not-reactive]
      • <h3> Logic inside Effects is reactive [#logic-inside-effects-is-reactive]
    • <h2> Extracting non-reactive logic out of Effects [#extracting-non-reactive-logic-out-of-effects]
      • <h3> Declaring an Effect Event [#declaring-an-effect-event]
      • <h3> Under Construction
      • <h3> Reading latest props and state with Effect Events [#reading-latest-props-and-state-with-effect-events]
      • <h3> Under Construction
      • <h3> Note
      • <h3> Limitations of Effect Events [#limitations-of-effect-events]
      • <h3> Under Construction
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
213/learn/separating-events-from-effects
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Adding Interactivity
    • <h3> In this chapter
    • <h2> Responding to events [#responding-to-events]
    • <h2> Ready to learn this topic?
    • <h2> State: a component’s memory [#state-a-components-memory]
    • <h2> Ready to learn this topic?
    • <h2> Render and commit [#render-and-commit]
    • <h2> Ready to learn this topic?
    • <h2> State as a snapshot [#state-as-a-snapshot]
    • <h2> Ready to learn this topic?
    • <h2> Queueing a series of state updates [#queueing-a-series-of-state-updates]
    • <h2> Ready to learn this topic?
    • <h2> Updating objects in state [#updating-objects-in-state]
    • <h2> Ready to learn this topic?
    • <h2> Updating arrays in state [#updating-arrays-in-state]
    • <h2> Ready to learn this topic?
    • <h2> What’s next? [#whats-next]
    • <h2> On this page
203/learn/adding-interactivity
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Reusing Logic with Custom Hooks
    • <h3> You will learn
    • <h2> Custom Hooks: Sharing logic between components [#custom-hooks-sharing-logic-between-components]
      • <h3> Extracting your own custom Hook from a component [#extracting-your-own-custom-hook-from-a-component]
      • <h3> Hook names always start with use [#hook-names-always-start-with-use]
      • <h3> Note
      • <h3> Custom Hooks let you share stateful logic, not state itself [#custom-hooks-let-you-share-stateful-logic-not-state-itself]
    • <h2> Passing reactive values between Hooks [#passing-reactive-values-between-hooks]
      • <h3> Passing event handlers to custom Hooks [#passing-event-handlers-to-custom-hooks]
      • <h3> Under Construction
    • <h2> When to use custom Hooks [#when-to-use-custom-hooks]
      • <h3> Custom Hooks help you migrate to better patterns [#custom-hooks-help-you-migrate-to-better-patterns]
      • <h3> There is more than one way to do it [#there-is-more-than-one-way-to-do-it]
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
183/learn/reusing-logic-with-custom-hooks
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Rendering Lists
    • <h3> You will learn
    • <h2> Rendering data from arrays [#rendering-data-from-arrays]
    • <h2> Filtering arrays of items [#filtering-arrays-of-items]
      • <h3> Pitfall
    • <h2> Keeping list items in order with key [#keeping-list-items-in-order-with-key]
      • <h3> Note
      • <h3> Where to get your key [#where-to-get-your-key]
      • <h3> Rules of keys [#rules-of-keys]
      • <h3> Why does React need keys? [#why-does-react-need-keys]
      • <h3> Pitfall
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
163/learn/rendering-lists
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Importing and Exporting Components
    • <h3> You will learn
    • <h2> The root component file [#the-root-component-file]
    • <h2> Exporting and importing a component [#exporting-and-importing-a-component]
      • <h3> Note
    • <h2> Exporting and importing multiple components from the same file [#exporting-and-importing-multiple-components-from-the-same-file]
      • <h3> Note
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
123/learn/importing-and-exporting-components
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> You Might Not Need an Effect
    • <h3> You will learn
    • <h2> How to remove unnecessary Effects [#how-to-remove-unnecessary-effects]
      • <h3> Updating state based on props or state [#updating-state-based-on-props-or-state]
      • <h3> Caching expensive calculations [#caching-expensive-calculations]
      • <h3> Resetting all state when a prop changes [#resetting-all-state-when-a-prop-changes]
      • <h3> Adjusting some state when a prop changes [#adjusting-some-state-when-a-prop-changes]
      • <h3> Sharing logic between event handlers [#sharing-logic-between-event-handlers]
      • <h3> Sending a POST request [#sending-a-post-request]
      • <h3> Chains of computations [#chains-of-computations]
      • <h3> Initializing the application [#initializing-the-application]
      • <h3> Notifying parent components about state changes [#notifying-parent-components-about-state-changes]
      • <h3> Passing data to the parent [#passing-data-to-the-parent]
      • <h3> Subscribing to an external store [#subscribing-to-an-external-store]
      • <h3> Fetching data [#fetching-data]
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
203/learn/you-might-not-need-an-effect
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Choosing the State Structure
    • <h3> You will learn
    • <h2> Principles for structuring state [#principles-for-structuring-state]
    • <h2> Group related state [#group-related-state]
      • <h3> Pitfall
    • <h2> Avoid contradictions in state [#avoid-contradictions-in-state]
    • <h2> Avoid redundant state [#avoid-redundant-state]
    • <h2> Avoid duplication in state [#avoid-duplication-in-state]
    • <h2> Avoid deeply nested state [#avoid-deeply-nested-state]
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
143/learn/choosing-the-state-structure
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> React Developer Tools
    • <h3> You will learn
    • <h2> Browser extension [#browser-extension]
      • <h3> Safari and other browsers [#safari-and-other-browsers]
    • <h2> Mobile (React Native) [#mobile-react-native]
    • <h2> On this page
83/learn/react-developer-tools
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Reacting to Input with State
    • <h3> You will learn
    • <h2> How declarative UI compares to imperative [#how-declarative-ui-compares-to-imperative]
    • <h2> Thinking about UI declaratively [#thinking-about-ui-declaratively]
      • <h3> Step 1: Identify your component’s different visual states [#step-1-identify-your-components-different-visual-states]
      • <h3> Step 2: Determine what triggers those state changes [#step-2-determine-what-triggers-those-state-changes]
      • <h3> Note
      • <h3> Step 3: Represent the state in memory with useState [#step-3-represent-the-state-in-memory-with-usestate]
      • <h3> Step 4: Remove any non-essential state variables [#step-4-remove-any-non-essential-state-variables]
      • <h3> Step 5: Connect the event handlers to set state [#step-5-connect-the-event-handlers-to-set-state]
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
153/learn/reacting-to-input-with-state
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Your First Component
    • <h3> You will learn
    • <h2> Components: UI building blocks [#components-ui-building-blocks]
    • <h2> Defining a component [#defining-a-component]
      • <h3> Step 1: Export the component [#step-1-export-the-component]
      • <h3> Step 2: Define the function [#step-2-define-the-function]
      • <h3> Pitfall
      • <h3> Step 3: Add markup [#step-3-add-markup]
      • <h3> Pitfall
    • <h2> Using a component [#using-a-component]
      • <h3> What the browser sees [#what-the-browser-sees]
      • <h3> Nesting and organizing components [#nesting-and-organizing-components]
      • <h3> Pitfall
    • <h2> Recap [#recap]
    • <h2> Try out some challenges [#challenges]
    • <h2> On this page
183/learn/your-first-component
  • <h1> React
    • <h2> Create user interfaces from components
      • <h3> Video.js
      • <h3> My video
    • <h2> Write components with code and markup
      • <h3> VideoList.js
    • <h2> 3 Videos
      • <h3> First video
      • <h3> Second video
      • <h3> Third video
    • <h2> Add interactivity wherever you need it
      • <h3> SearchableVideoList.js
  • <h1> React Videos
    • <h2> 5 Videos
      • <h3> React: The Documentary
      • <h3> Rethinking Best Practices
      • <h3> Introducing React Native
      • <h3> Introducing React Hooks
      • <h3> Introducing Server Components
    • <h2> Go full-stack with a framework
      • <h3> confs/[slug].js
    • <h2> 19 Videos
      • <h3> React 18 Keynote
      • <h3> React 18 for App Developers
      • <h3> Streaming Server Rendering with Suspense
      • <h3> The First React Working Group
      • <h3> React Developer Tooling
      • <h3> React without memo
      • <h3> React Docs Keynote
      • <h3> Things I Learnt from the New React Docs
      • <h3> Learning in the Browser
      • <h3> The ROI of Designing with React
      • <h3> Interactive Playgrounds with React
      • <h3> Re-introducing Relay
      • <h3> React Native Desktop
      • <h3> On-device Machine Learning for React Native
      • <h3> React 18 for External Store Libraries
      • <h3> Building Accessible Components with React 18
      • <h3> Accessible Japanese Form Components with React
      • <h3> UI Tools for Artists
      • <h3> Hydrogen + React 18
    • <h2> Use the best from every platform
    • <h2> Upgrade when the future is ready
    • <h2> React Conf 2024 Recap
    • <h2> React 19 RC
    • <h2> React 19 RC Upgrade Guide
    • <h2> React Labs: February 2024
    • <h2> Join a community of millions
    • <h2> Welcome to the React community
492/
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Thinking in React
    • <h2> Start with the mockup [#start-with-the-mockup]
    • <h2> Step 1: Break the UI into a component hierarchy [#step-1-break-the-ui-into-a-component-hierarchy]
    • <h2> Step 2: Build a static version in React [#step-2-build-a-static-version-in-react]
      • <h3> Pitfall
    • <h2> Step 3: Find the minimal but complete representation of UI state [#step-3-find-the-minimal-but-complete-representation-of-ui-state]
    • <h2> Step 4: Identify where your state should live [#step-4-identify-where-your-state-should-live]
    • <h2> Step 5: Add inverse data flow [#step-5-add-inverse-data-flow]
    • <h2> Where to go from here [#where-to-go-from-here]
    • <h2> On this page
122/learn/thinking-in-react
  • <h3> GET STARTED
  • <h3> LEARN REACT
  • <h1> Start a New React Project
    • <h2> Production-grade React frameworks [#production-grade-react-frameworks]
      • <h3> Next.js [#nextjs-pages-router]
      • <h3> Remix [#remix]
      • <h3> Gatsby [#gatsby]
      • <h3> Expo (for native apps) [#expo]
    • <h2> Bleeding-edge React frameworks [#bleeding-edge-react-frameworks]
      • <h3> Next.js (App Router) [#nextjs-app-router]
    • <h2> On this page
112/learn/start-a-new-react-project
  • <h3> GET INVOLVED
  • <h1> React Community
    • <h2> Code of Conduct [#code-of-conduct]
    • <h2> Stack Overflow [#stack-overflow]
    • <h2> Popular Discussion Forums [#popular-discussion-forums]
    • <h2> News [#news]
    • <h2> On this page
71/community
  • <h3> GET INVOLVED
  • <h1> Translations
    • <h2> Source site [#main-site]
    • <h2> Full translations [#full-translations]
    • <h2> In-progress translations [#in-progress-translations]
    • <h2> How to contribute [#how-to-contribute]
    • <h2> On this page
71/community/translations
  • <h3> GET INVOLVED
  • <h1> React Meetups
    • <h2> Albania [#albania]
    • <h2> Argentina [#argentina]
    • <h2> Australia [#australia]
    • <h2> Austria [#austria]
    • <h2> Belgium [#belgium]
    • <h2> Brazil [#brazil]
    • <h2> Bolivia [#bolivia]
    • <h2> Canada [#canada]
    • <h2> Chile [#chile]
    • <h2> China [#china]
    • <h2> Colombia [#colombia]
    • <h2> Denmark [#denmark]
    • <h2> Egypt [#egypt]
    • <h2> England (UK) [#england-uk]
    • <h2> France [#france]
    • <h2> Germany [#germany]
    • <h2> Greece [#greece]
    • <h2> Hungary [#hungary]
    • <h2> India [#india]
    • <h2> Indonesia [#indonesia]
    • <h2> Ireland [#ireland]
    • <h2> Israel [#israel]
    • <h2> Italy [#italy]
    • <h2> Kenya [#kenya]
    • <h2> Malaysia [#malaysia]
    • <h2> Netherlands [#netherlands]
    • <h2> New Zealand [#new-zealand]
    • <h2> Norway [#norway]
    • <h2> Pakistan [#pakistan]
    • <h2> Panama [#panama]
    • <h2> Peru [#peru]
    • <h2> Philippines [#philippines]
    • <h2> Poland [#poland]
    • <h2> Portugal [#portugal]
    • <h2> Scotland (UK) [#scotland-uk]
    • <h2> Spain [#spain]
    • <h2> Sweden [#sweden]
    • <h2> Switzerland [#switzerland]
    • <h2> Turkey [#turkey]
    • <h2> Ukraine [#ukraine]
    • <h2> US [#us]
    • <h2> On this page
441/community/meetups
  • <h3> GET INVOLVED
  • <h1> React Videos
    • <h2> React Conf 2021 [#react-conf-2021]
      • <h3> React 18 Keynote [#react-18-keynote]
      • <h3> React 18 for Application Developers [#react-18-for-application-developers]
      • <h3> Streaming Server Rendering with Suspense [#streaming-server-rendering-with-suspense]
      • <h3> The first React working group [#the-first-react-working-group]
      • <h3> React Developer Tooling [#react-developer-tooling]
      • <h3> React without memo [#react-without-memo]
      • <h3> React docs keynote [#react-docs-keynote]
      • <h3> And more… [#and-more]
    • <h2> Older videos [#older-videos]
      • <h3> React Conf 2019 [#react-conf-2019]
      • <h3> React Conf 2018 [#react-conf-2018]
      • <h3> React.js Conf 2017 [#reactjs-conf-2017]
      • <h3> React.js Conf 2016 [#reactjs-conf-2016]
      • <h3> React.js Conf 2015 [#reactjs-conf-2015]
      • <h3> Rethinking Best Practices [#rethinking-best-practices]
      • <h3> Introduction to React [#introduction-to-react]
    • <h2> On this page
201/community/videos
  • <h3> GET INVOLVED
  • <h1> Docs Contributors
    • <h2> Content [#content]
    • <h2> Design [#design]
    • <h2> Development [#development]
    • <h2> On this page
61/community/docs-contributors
  • <h3> GET INVOLVED
  • <h1> Versioning Policy
    • <h2> Stable releases [#stable-releases]
      • <h3> Breaking Changes [#breaking-changes]
      • <h3> Commitment to stability [#commitment-to-stability]
      • <h3> Gradual upgrades via warnings [#gradual-upgrades-via-warnings]
      • <h3> What counts as a breaking change? [#what-counts-as-a-breaking-change]
      • <h3> If a minor release includes no new features, why isn’t it a patch? [#if-a-minor-release-includes-no-new-features-why-isnt-it-a-patch]
    • <h2> All release channels [#all-release-channels]
      • <h3> Note
      • <h3> Latest channel [#latest-channel]
      • <h3> Canary channel [#canary-channel]
      • <h3> Experimental channel [#experimental-channel]
    • <h2> On this page
141/community/versioning-policy
  • <h1> React Labs: What We've Been Working On – February 2024
    • <h3> Note
    • <h2> React Compiler [#react-compiler]
    • <h2> Actions [#actions]
    • <h2> New Features in React Canary [#new-features-in-react-canary]
    • <h2> The Next Major Version of React [#the-next-major-version-of-react]
    • <h2> Offscreen (renamed to Activity). [#offscreen-renamed-to-activity]
71/blog/2024/02/15/react-labs-what-we-have-been-working-on-february-2024
  • <h3> GET INVOLVED
  • <h1> Acknowledgements
    • <h2> Past contributors [#past-contributors]
    • <h2> Additional Thanks [#additional-thanks]
    • <h2> On this page
51/community/acknowledgements
  • <h1> How to Upgrade to React 18
    • <h3> Note
    • <h2> Installing [#installing]
    • <h2> Updates to Client Rendering APIs [#updates-to-client-rendering-apis]
      • <h3> Note
      • <h3> Note
    • <h2> Updates to Server Rendering APIs [#updates-to-server-rendering-apis]
    • <h2> Updates to TypeScript definitions [#updates-to-typescript-definitions]
    • <h2> Automatic Batching [#automatic-batching]
    • <h2> New APIs for Libraries [#new-apis-for-libraries]
    • <h2> Updates to Strict Mode [#updates-to-strict-mode]
    • <h2> Configuring Your Testing Environment [#configuring-your-testing-environment]
    • <h2> Dropping Support for Internet Explorer [#dropping-support-for-internet-explorer]
    • <h2> Deprecations [#deprecations]
    • <h2> Other Breaking Changes [#other-breaking-changes]
    • <h2> Other Notable Changes [#other-notable-changes]
      • <h3> React [#react]
      • <h3> React DOM Server [#react-dom-server]
    • <h2> Changelog [#changelog]
191/blog/2022/03/08/react-18-upgrade-guide
  • <h1> React 19 RC Upgrade Guide
    • <h3> Note
    • <h2> Installing [#installing]
      • <h3> Note
    • <h2> Codemods [#codemods]
      • <h3> Note
    • <h2> Breaking changes [#breaking-changes]
      • <h3> Errors in render are not re-thrown [#errors-in-render-are-not-re-thrown]
      • <h3> Removed deprecated React APIs [#removed-deprecated-react-apis]
      • <h3> Note
      • <h3> Note
      • <h3> Note
      • <h3> Removed deprecated React DOM APIs [#removed-deprecated-react-dom-apis]
      • <h3> Note
      • <h3> Note
      • <h3> Note
      • <h3> Note
    • <h2> New deprecations [#new-deprecations]
      • <h3> Deprecated: element.ref [#deprecated-element-ref]
      • <h3> Deprecated: react-test-renderer [#deprecated-react-test-renderer]
    • <h2> Notable changes [#notable-changes]
      • <h3> StrictMode changes [#strict-mode-improvements]
      • <h3> UMD builds removed [#umd-builds-removed]
      • <h3> Libraries depending on React internals may block upgrades [#libraries-depending-on-react-internals-may-block-upgrades]
    • <h2> TypeScript changes [#typescript-changes]
      • <h3> Removed deprecated TypeScript types [#removed-deprecated-typescript-types]
      • <h3> Note
      • <h3> ref cleanups required [#ref-cleanup-required]
      • <h3> useRef requires an argument [#useref-requires-argument]
      • <h3> Changes to the ReactElement TypeScript type [#changes-to-the-reactelement-typescript-type]
      • <h3> The JSX namespace in TypeScript [#the-jsx-namespace-in-typescript]
      • <h3> Better useReducer typings [#better-usereducer-typings]
    • <h2> Changelog [#changelog]
      • <h3> Other breaking changes [#other-breaking-changes]
      • <h3> Other notable changes [#other-notable-changes]
351/blog/2024/04/25/react-19-upgrade-guide
  • <h3> GET INVOLVED
  • <h1> Meet the Team
    • <h2> React Core [#react-core]
      • <h3> Andrew Clark [#andrew-clark]
      • <h3> Dan Abramov [#dan-abramov]
      • <h3> Eli White [#eli-white]
      • <h3> Jack Pope [#jack-pope]
      • <h3> Jason Bonta [#jason-bonta]
      • <h3> Joe Savona [#joe-savona]
      • <h3> Josh Story [#josh-story]
      • <h3> Lauren Tan [#lauren-tan]
      • <h3> Luna Wei [#luna-wei]
      • <h3> Matt Carroll [#matt-carroll]
      • <h3> Mofei Zhang [#mofei-zhang]
      • <h3> Noah Lemen [#noah-lemen]
      • <h3> Rick Hanlon [#rick-hanlon]
      • <h3> Ruslan Lesiutin [#ruslan-lesiutin]
      • <h3> Sathya Gunasekaran [#sathya-gunasekaran]
      • <h3> Sebastian Markbåge [#sebastian-markbåge]
      • <h3> Sebastian Silbermann [#sebastian-silbermann]
      • <h3> Seth Webster [#seth-webster]
      • <h3> Sophie Alpert [#sophie-alpert]
      • <h3> Tianyu Yao [#tianyu-yao]
      • <h3> Yuzhi Zheng [#yuzhi-zheng]
    • <h2> Past contributors [#past-contributors]
    • <h2> On this page
261/community/team
  • <h1> React v18.0
    • <h3> Note
    • <h2> What is Concurrent React? [#what-is-concurrent-react]
    • <h2> Gradually Adopting Concurrent Features [#gradually-adopting-concurrent-features]
    • <h2> Suspense in Data Frameworks [#suspense-in-data-frameworks]
    • <h2> Server Components is Still in Development [#server-components-is-still-in-development]
    • <h2> What’s New in React 18 [#whats-new-in-react-18]
      • <h3> New Feature: Automatic Batching [#new-feature-automatic-batching]
      • <h3> New Feature: Transitions [#new-feature-transitions]
      • <h3> New Suspense Features [#new-suspense-features]
      • <h3> New Client and Server Rendering APIs [#new-client-and-server-rendering-apis]
      • <h3> New Strict Mode Behaviors [#new-strict-mode-behaviors]
      • <h3> New Hooks [#new-hooks]
    • <h2> How to Upgrade [#how-to-upgrade]
    • <h2> Changelog [#changelog]
      • <h3> React [#react]
      • <h3> React DOM [#react-dom]
      • <h3> React DOM Server [#react-dom-server-1]
      • <h3> React DOM Test Utils [#react-dom-test-utils]
      • <h3> React Refresh [#react-refresh]
      • <h3> Server Components (Experimental) [#server-components-experimental]
211/blog/2022/03/29/react-v18
  • <h3> GET INVOLVED
  • <h1> React Conferences
    • <h2> Upcoming Conferences [#upcoming-conferences]
      • <h3> React Nexus 2024 [#react-nexus-2024]
      • <h3> Chain React 2024 [#chain-react-2024]
      • <h3> The Geek Conf 2024 [#the-geek-conf-2024]
      • <h3> React Rally 2024 🐙 [#react-rally-2024]
      • <h3> React Universe Conf 2024 [#react-universe-conf-2024]
      • <h3> React Alicante 2024 [#react-alicante-2024]
      • <h3> RenderCon Kenya 2024 [#rendercon-kenya-2024]
      • <h3> React India 2024 [#react-india-2024]
      • <h3> React Brussels 2024 [#react-brussels-2024]
      • <h3> React Africa 2024 [#react-africa-2024]
    • <h2> Past Conferences [#past-conferences]
      • <h3> React Summit 2024 [#react-summit-2024]
      • <h3> React Norway 2024 [#react-norway-2024]
      • <h3> Render(ATL) 2024 🍑 [#renderatl-2024-]
      • <h3> Frontend Nation 2024 [#frontend-nation-2024]
      • <h3> App.js Conf 2024 [#appjs-conf-2024]
      • <h3> React Conf 2024 [#react-conf-2024]
      • <h3> React Native Connection 2024 [#react-native-connection-2024]
      • <h3> React Miami 2024 [#react-miami-2024]
      • <h3> Epic Web Conf 2024 [#epic-web-2024]
      • <h3> React Paris 2024 [#react-paris-2024]
      • <h3> React Day Berlin 2023 [#react-day-berlin-2023]
      • <h3> React Summit US 2023 [#react-summit-us-2023]
      • <h3> reactjsday 2023 [#reactjsday-2023]
      • <h3> React Advanced 2023 [#react-advanced-2023]
      • <h3> React Brussels 2023 [#react-brussels-2023]
      • <h3> React India 2023 [#react-india-2023]
      • <h3> RenderCon Kenya 2023 [#rendercon-kenya-2023]
      • <h3> React Live 2023 [#react-live-2023]
      • <h3> React Alicante 2023 [#react-alicante-2023]
      • <h3> RedwoodJS Conference 2023 [#redwoodjs-conference-2023]
      • <h3> React Native EU 2023 [#react-native-eu-2023]
      • <h3> React Rally 2023 🐙 [#react-rally-2023]
      • <h3> React Nexus 2023 [#react-nexus-2023]
      • <h3> ReactNext 2023 [#reactnext-2023]
      • <h3> React Norway 2023 [#react-norway-2023]
      • <h3> React Summit 2023 [#react-summit-2023]
      • <h3> Render(ATL) 2023 🍑 [#renderatl-2023-]
      • <h3> Chain React 2023 [#chain-react-2023]
      • <h3> App.js Conf 2023 [#appjs-conf-2023]
      • <h3> RemixConf 2023 [#remixconf-2023]
      • <h3> Reactathon 2023 [#reactathon-2023]
      • <h3> React Miami 2023 [#react-miami-2023]
      • <h3> React Day Berlin 2022 [#react-day-berlin-2022]
      • <h3> React Global Online Summit 22.2 by Geekle [#react-global-online-summit-222-by-geekle]
      • <h3> Remix Conf Europe 2022 [#remix-conf-europe-2022]
      • <h3> React Advanced 2022 [#react-advanced-2022]
      • <h3> ReactJS Day 2022 [#reactjs-day-2022]
      • <h3> React Brussels 2022 [#react-brussels-2022]
      • <h3> React Alicante 2022 [#react-alicante-2022]
      • <h3> React India 2022 [#react-india-2022]
      • <h3> React Finland 2022 [#react-finland-2022]
      • <h3> React Native EU 2022: Powered by callstack [#react-native-eu-2022-powered-by-callstack]
      • <h3> ReactNext 2022 [#reactnext-2022]
      • <h3> React Norway 2022 [#react-norway-2022]
      • <h3> React Summit 2022 [#react-summit-2022]
      • <h3> App.js Conf 2022 [#appjs-conf-2022]
      • <h3> React Day Bangalore 2022 [#react-day-bangalore-2022]
      • <h3> render(ATL) 2022 🍑 [#renderatl-2022-]
      • <h3> RemixConf 2022 [#remixconf-2022]
      • <h3> Reactathon 2022 [#reactathon-2022]
      • <h3> React Global Online Summit 2022 by Geekle [#react-global-online-summit-2022-by-geekle]
      • <h3> React Miami 2022 🌴 [#react-miami-2022-]
      • <h3> React Live 2022 [#react-live-2022]
      • <h3> AgentConf 2022 [#agentconf-2022]
      • <h3> React Conf 2021 [#react-conf-2021]
      • <h3> ReactEurope 2021 [#reacteurope-2021]
      • <h3> ReactNext 2021 [#reactnext-2021]
      • <h3> React India 2021 [#react-india-2021]
      • <h3> React Global by Geekle [#react-global-by-geekle]
      • <h3> React Advanced 2021 [#react-advanced-2021]
      • <h3> React Conf Brasil 2021 [#react-conf-brasil-2021]
      • <h3> React Brussels 2021 [#react-brussels-2021]
      • <h3> render(ATL) 2021 [#renderatl-2021]
      • <h3> React Native EU 2021 [#react-native-eu-2021]
      • <h3> React Finland 2021 [#react-finland-2021]
      • <h3> React Case Study Festival 2021 [#react-case-study-festival-2021]
      • <h3> React Summit - Remote Edition 2021 [#react-summit---remote-edition-2021]
      • <h3> React fwdays’21 [#react-fwdays21]
      • <h3> React Next 2020 [#react-next-2020]
      • <h3> React Conf Brasil 2020 [#react-conf-brasil-2020]
      • <h3> React Summit 2020 [#react-summit-2020]
      • <h3> React Native EU 2020 [#react-native-eu-2020]
      • <h3> ReactEurope 2020 [#reacteurope-2020]
      • <h3> Byteconf React 2020 [#byteconf-react-2020]
      • <h3> React Summit - Remote Edition 2020 [#react-summit---remote-edition-2020]
      • <h3> Reactathon 2020 [#reactathon-2020]
      • <h3> ReactConf AU 2020 [#reactconf-au-2020]
      • <h3> React Barcamp Cologne 2020 [#react-barcamp-cologne-2020]
      • <h3> React Day Berlin 2019 [#react-day-berlin-2019]
      • <h3> React Summit 2019 [#react-summit-2019]
      • <h3> React Conf Brasil 2019 [#react-conf-brasil-2019]
      • <h3> React Advanced 2019 [#react-advanced-2019]
      • <h3> React Conf 2019 [#react-conf-2019]
      • <h3> React Alicante 2019 [#react-alicante-2019]
      • <h3> React India 2019 [#react-india-2019]
      • <h3> React Boston 2019 [#react-boston-2019]
      • <h3> React Live 2019 [#react-live-2019]
      • <h3> React New York 2019 [#react-new-york-2019]
      • <h3> ComponentsConf 2019 [#componentsconf-2019]
      • <h3> React Native EU 2019 [#react-native-eu-2019]
      • <h3> React Conf Iran 2019 [#react-conf-iran-2019]
      • <h3> React Rally 2019 [#react-rally-2019]
      • <h3> Chain React 2019 [#chain-react-2019]
      • <h3> React Loop 2019 [#react-loop-2019]
      • <h3> React Norway 2019 [#react-norway-2019]
      • <h3> ReactNext 2019 [#reactnext-2019]
      • <h3> React Conf Armenia 2019 [#react-conf-armenia-2019]
      • <h3> ReactEurope 2019 [#reacteurope-2019]
      • <h3> React.NotAConf 2019 [#reactnotaconf-2019]
      • <h3> ReactJS Girls Conference [#reactjs-girls-conference]
      • <h3> React Finland 2019 [#react-finland-2019]
      • <h3> React Amsterdam 2019 [#react-amsterdam-2019]
      • <h3> App.js Conf 2019 [#appjs-conf-2019]
      • <h3> Reactathon 2019 [#reactathon-2019]
      • <h3> React Iran 2019 [#react-iran-2019]
      • <h3> React Day Berlin 2018 [#react-day-berlin-2018]
      • <h3> ReactNext 2018 [#reactnext-2018]
      • <h3> React Conf 2018 [#react-conf-2018]
      • <h3> React Conf Brasil 2018 [#react-conf-brasil-2018]
      • <h3> ReactJS Day 2018 [#reactjs-day-2018]
      • <h3> React Boston 2018 [#react-boston-2018]
      • <h3> React Alicante 2018 [#react-alicante-2018]
      • <h3> React Native EU 2018 [#react-native-eu-2018]
      • <h3> Byteconf React 2018 [#byteconf-react-2018]
      • <h3> ReactFoo Delhi [#reactfoo-delhi]
      • <h3> React DEV Conf China [#react-dev-conf-china]
      • <h3> React Rally 2018 [#react-rally-2018]
      • <h3> Chain React 2018 [#chain-react-2018]
      • <h3> ReactFoo Mumbai [#reactfoo-mumbai]
      • <h3> ReactEurope 2018 [#reacteurope-2018]
      • <h3> React.NotAConf 2018 [#reactnotaconf-2018]
      • <h3> React Finland 2018 [#react-finland-2018]
      • <h3> React Amsterdam 2018 [#react-amsterdam-2018]
      • <h3> React Native Camp UA 2018 [#react-native-camp-ua-2018]
      • <h3> Reactathon 2018 [#reactathon-2018]
      • <h3> ReactFest 2018 [#reactfest-2018]
      • <h3> AgentConf 2018 [#agentconf-2018]
      • <h3> ReactFoo Pune [#reactfoo-pune]
      • <h3> React Day Berlin 2017 [#react-day-berlin-2017]
      • <h3> React Seoul 2017 [#react-seoul-2017]
      • <h3> ReactiveConf 2017 [#reactiveconf-2017]
      • <h3> React Summit 2017 [#react-summit-2017]
      • <h3> State.js Conference 2017 [#statejs-conference-2017]
      • <h3> React Conf Brasil 2017 [#react-conf-brasil-2017]
      • <h3> ReactJS Day 2017 [#reactjs-day-2017]
      • <h3> React Alicante 2017 [#react-alicante-2017]
      • <h3> React Boston 2017 [#react-boston-2017]
      • <h3> ReactFoo 2017 [#reactfoo-2017]
      • <h3> ReactNext 2017 [#reactnext-2017]
      • <h3> React Native EU 2017 [#react-native-eu-2017]
      • <h3> React Rally 2017 [#react-rally-2017]
      • <h3> Chain React 2017 [#chain-react-2017]
      • <h3> ReactEurope 2017 [#reacteurope-2017]
      • <h3> React Amsterdam 2017 [#react-amsterdam-2017]
      • <h3> React London 2017 [#react-london-2017]
      • <h3> React Conf 2017 [#react-conf-2017]
      • <h3> Agent Conference 2017 [#agent-conference-2017]
      • <h3> React Remote Conf 2016 [#react-remote-conf-2016]
      • <h3> Reactive 2016 [#reactive-2016]
      • <h3> ReactNL 2016 [#reactnl-2016]
      • <h3> ReactNext 2016 [#reactnext-2016]
      • <h3> ReactRally 2016 [#reactrally-2016]
      • <h3> ReactEurope 2016 [#reacteurope-2016]
      • <h3> React Amsterdam 2016 [#react-amsterdam-2016]
      • <h3> React.js Conf 2016 [#reactjs-conf-2016]
      • <h3> Reactive 2015 [#reactive-2015]
      • <h3> ReactEurope 2015 [#reacteurope-2015]
      • <h3> React.js Conf 2015 [#reactjs-conf-2015]
    • <h2> On this page
1731/community/conferences
  • <h1> The Plan for React 18
    • <h2> What’s coming in React 18 [#whats-coming-in-react-18]
    • <h2> A gradual adoption strategy [#a-gradual-adoption-strategy]
    • <h2> Working with the community [#working-with-the-community]
    • <h2> Accessing the React 18 Working Group [#accessing-the-react-18-working-group]
    • <h2> How to try React 18 Alpha today [#how-to-try-react-18-alpha-today]
    • <h2> Projected React 18 release timeline [#projected-react-18-release-timeline]
70/blog/2021/06/08/the-plan-for-react-18
  • <h1> React Conf 2024 Recap
    • <h2> Day 1 [#day-1]
    • <h2> Day 2 [#day-2]
    • <h2> Q&amp;A [#q-and-a]
    • <h2> And more… [#and-more]
    • <h2> Thank you [#thank-you]
60/blog/2024/05/22/react-conf-2024-recap
  • <h1> React Blog
    • <h2> React Conf 2024 Recap
    • <h2> React 19 RC
    • <h2> React 19 RC Upgrade Guide
    • <h2> React Labs: What We've Been Working On – February 2024
    • <h2> React Canaries: Incremental Feature Rollout Outside Meta
    • <h2> React Labs: What We've Been Working On – March 2023
    • <h2> Introducing react.dev
    • <h2> React Labs: What We've Been Working On – June 2022
    • <h2> React v18.0
    • <h2> How to Upgrade to React 18
    • <h2> React Conf 2021 Recap
    • <h2> The Plan for React 18
    • <h2> Introducing Zero-Bundle-Size React Server Components
      • <h3> All release notes [#all-release-notes]
      • <h3> Older posts [#older-posts]
160/blog
  • <h1> Introducing react.dev
    • <h2> tl;dr [#tldr]
    • <h2> New site, new domain, new homepage [#new-site-new-domain-new-homepage]
    • <h2> Going all-in on modern React with Hooks [#going-all-in-on-modern-react-with-hooks]
      • <h3> Note
    • <h2> Quick start [#quick-start]
      • <h3> Note
    • <h2> Learn React step by step [#learn-react-step-by-step]
      • <h3> Check your understanding with challenges [#check-your-understanding-with-challenges]
      • <h3> Build an intuition with diagrams and illustrations [#build-an-intuition-with-diagrams-and-illustrations]
    • <h2> A new, detailed API Reference [#a-new-detailed-api-reference]
    • <h2> What’s next? [#whats-next]
    • <h2> Who worked on this? [#who-worked-on-this]
130/blog/2023/03/16/introducing-react-dev
  • <h1> React Conf 2021 Recap
    • <h2> React 18 and concurrent features [#react-18-and-concurrent-features]
    • <h2> React 18 for Application Developers [#react-18-for-application-developers]
    • <h2> Streaming Server Rendering with Suspense [#streaming-server-rendering-with-suspense]
    • <h2> The first React working group [#the-first-react-working-group]
    • <h2> React Developer Tooling [#react-developer-tooling]
    • <h2> React without memo [#react-without-memo]
    • <h2> React docs keynote [#react-docs-keynote]
    • <h2> And more… [#and-more]
    • <h2> Thank you [#thank-you]
100/blog/2021/12/17/react-conf-2021-recap
  • <h1> React Labs: What We've Been Working On – March 2023
    • <h2> React Server Components [#react-server-components]
    • <h2> Asset Loading [#asset-loading]
    • <h2> Document Metadata [#document-metadata]
    • <h2> React Optimizing Compiler [#react-optimizing-compiler]
    • <h2> Offscreen Rendering [#offscreen-rendering]
    • <h2> Transition Tracing [#transition-tracing]
70/blog/2023/03/22/react-labs-what-we-have-been-working-on-march-2023
  • <h1> Introducing Zero-Bundle-Size React Server Components
10/blog/2020/12/21/data-fetching-with-react-server-components
  • <h1> React Labs: What We've Been Working On – June 2022
    • <h2> Server Components [#server-components]
    • <h2> Asset Loading [#asset-loading]
    • <h2> Static Server Rendering Optimizations [#static-server-rendering-optimizations]
    • <h2> React Optimizing Compiler [#react-compiler]
    • <h2> Offscreen [#offscreen]
    • <h2> Transition Tracing [#transition-tracing]
    • <h2> New React Docs [#new-react-docs]
80/blog/2022/06/15/react-labs-what-we-have-been-working-on-june-2022
  • <h1> React Canaries: Enabling Incremental Feature Rollout Outside Meta
    • <h2> tl;dr [#tldr]
    • <h2> How React features are usually developed [#how-react-features-are-usually-developed]
    • <h2> Can we just do more minor releases? [#can-we-just-do-more-minor-releases]
    • <h2> Why not use experimental releases instead? [#why-not-use-experimental-releases-instead]
    • <h2> Announcing breaking changes and new features early [#announcing-breaking-changes-and-new-features-early]
    • <h2> Canaries must be pinned [#canaries-must-be-pinned]
    • <h2> Example: React Server Components [#example-react-server-components]
    • <h2> Testing libraries against both Stable and Canary versions [#testing-libraries-against-both-stable-and-canary-versions]
      • <h3> Note
    • <h2> Stable releases work like before [#stable-releases-work-like-before]
110/blog/2023/05/03/react-canaries
  • <h1> React 19 RC
    • <h2> What’s new in React 19 [#whats-new-in-react-19]
      • <h3> Actions [#actions]
      • <h3> Note
      • <h3> New hook: useActionState [#new-hook-useactionstate]
      • <h3> Note
      • <h3> React DOM: &lt;form&gt; Actions [#form-actions]
      • <h3> React DOM: New hook: useFormStatus [#new-hook-useformstatus]
      • <h3> New hook: useOptimistic [#new-hook-optimistic-updates]
      • <h3> New API: use [#new-feature-use]
      • <h3> Note
    • <h2> React Server Components [#react-server-components]
      • <h3> Server Components [#server-components]
      • <h3> Note
      • <h3> Server Actions [#server-actions]
      • <h3> Note
    • <h2> Improvements in React 19 [#improvements-in-react-19]
      • <h3> ref as a prop [#ref-as-a-prop]
      • <h3> Note
      • <h3> Diffs for hydration errors [#diffs-for-hydration-errors]
      • <h3> &lt;Context&gt; as a provider [#context-as-a-provider]
      • <h3> Cleanup functions for refs [#cleanup-functions-for-refs]
      • <h3> Note
      • <h3> useDeferredValue initial value [#use-deferred-value-initial-value]
      • <h3> Support for Document Metadata [#support-for-metadata-tags]
      • <h3> Note
      • <h3> Support for stylesheets [#support-for-stylesheets]
      • <h3> Support for async scripts [#support-for-async-scripts]
      • <h3> Support for preloading resources [#support-for-preloading-resources]
      • <h3> Compatibility with third-party scripts and extensions [#compatibility-with-third-party-scripts-and-extensions]
      • <h3> Better error reporting [#error-handling]
      • <h3> Support for Custom Elements [#support-for-custom-elements]
320/blog/2024/04/25/react-19
No rows found, please edit your search term.

404 URLs

StatusURL 404 🔼Found at URL
404 /TODO/blog/2024/04/25/react-19-upgrade-guide

Content types

Content typeURLs 🔽Total sizeTotal timeAvg timeStatus 20xStatus 30xStatus 40x
Image40715 MB74 s181 ms 407 00
HTML16544 MB14 s88 ms 164 01
Font371 MB2.7 s72 ms 37 00
JS12966 kB832 ms69 ms 12 00
Redirect4656 B163 ms41 ms 04 0
CSS1108 kB53 ms53 ms 1 00

Content types (MIME types)

Found 11 row(s).
Content typeURLs 🔽Total sizeTotal timeAvg timeStatus 20xStatus 30xStatus 40x
image/webp33113 MB68 s206 ms 331 00
text/html; charset=utf-816544 MB14 s88 ms 164 01
image/png421 MB2.7 s64 ms 42 00
font/woff2371 MB2.7 s72 ms 37 00
image/jpeg2769 kB1.4 s53 ms 27 00
application/javascript; charset=utf-811702 kB703 ms64 ms 11 00
image/svg+xml420 kB1.2 s304 ms 4 00
text/html4656 B163 ms41 ms 04 0
image/gif3422 kB392 ms131 ms 3 00
text/css; charset=utf-81108 kB53 ms53 ms 1 00
application/javascript; charset=UTF-81263 kB129 ms129 ms 1 00
No rows found, please edit your search term.

Source domains

DomainTotalsHTMLImageJSCSSFontRedirect
react.dev624 / 61MB / 92s164 / 44MB / 14s407 / 15MB / 74s11 / 702kB / 703ms1 / 108kB / 53ms37 / 1MB / 2.7s4 / 656B / 163ms
www.googletagmanager.com1 / 263kB / 129ms1 / 263kB / 129ms
legacy.reactjs.org1 / 126kB / 100ms1 / 126kB / 100ms

HTTP headers

Found 23 row(s).
Header 🔼OccursUniqueValues previewMin valueMax value
Accept-Ranges4431bytes
Access-Control-Allow-Origin6201*
Age620-[ignored generic values]18 hour(s)30.4 day(s)
Cache-Control6243public, max-age=0, must-revalidate (575) / public, max-age=31536000, immutable (public,max-age=31536000,immutable (12)
Connection6241close
Content-Disposition620-[ignored generic values]
Content-Encoding1771br
Content-Length443-[ignored generic values]148 B269 kB
Content-Security-Policy3221script-src 'none'; frame-src 'none'; sandbox;
Content-Type62410[see values below]
Date624-[ignored generic values]2024-08-162024-08-16
Etag298-[ignored generic values]
Last-Modified322-[ignored generic values]2024-07-172024-08-15
Location44[see values below]
Refresh220;url=/reference/react (1) / 0;url=/reference/react/useActionState (1)
Server6241Vercel
Strict-Transport-Security6241max-age=63072000
Transfer-Encoding1811chunked
Vary3221Accept
X-Matched-Path62020+[see values below]
X-Vercel-Cache6201HIT
X-Vercel-Id62420+[see values below]
X-Vercel-Imgsrc32220+[see values below]
No rows found, please edit your search term.

HTTP header values

Found 89 row(s).
HeaderOccursValue
Accept-Ranges443bytes
Access-Control-Allow-Origin620*
Cache-Control575public, max-age=0, must-revalidate
Cache-Control37public, max-age=31536000, immutable
Cache-Control12public,max-age=31536000,immutable
Connection624close
Content-Encoding177br
Content-Security-Policy322script-src 'none'; frame-src 'none'; sandbox;
Content-Type331image/webp
Content-Type164text/html; charset=utf-8
Content-Type42image/png
Content-Type37font/woff2
Content-Type27image/jpeg
Content-Type11application/javascript; charset=utf-8
Content-Type4image/svg+xml
Content-Type4text/html
Content-Type3image/gif
Content-Type1text/css; charset=utf-8
Location1/reference/react
Location1/reference/react/useActionState
Location1https://legacy.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html
Location1/reference/react-dom/client/hydrateRoot#hydrating-server-rendered-html
Refresh10;url=/reference/react
Refresh10;url=/reference/react/useActionState
Server624Vercel
Strict-Transport-Security624max-age=63072000
Transfer-Encoding181chunked
Vary322Accept
X-Matched-Path1/
X-Matched-Path1/images/home/conf2021/roman.jpg
X-Matched-Path1/images/home/conf2021/eric.jpg
X-Matched-Path1/images/home/conf2021/shruti.jpg
X-Matched-Path1/community
X-Matched-Path1/fonts/Optimistic_Display_W_SBd.woff2
X-Matched-Path1/images/uwu.png
X-Matched-Path1/community/translations
X-Matched-Path1/community/meetups
X-Matched-Path1/images/home/community/react_india_team.webp
X-Matched-Path1/versions
X-Matched-Path1/images/home/conf2021/delba.jpg
X-Matched-Path1/community/videos
X-Matched-Path1/favicon-16x16.png
X-Matched-Path1/fonts/Optimistic_Display_W_Md.woff2
X-Matched-Path1/safari-pinned-tab.svg
X-Matched-Path1/learn
X-Matched-Path1/images/home/conf2021/lauren.jpg
X-Matched-Path1/reference/react/components
X-Matched-Path1/learn/render-and-commit
X-Vercel-Cache620HIT
X-Vercel-Id1fra1::zctmn-1723825257309-a88e81f92134
X-Vercel-Id1fra1::qsnmc-1723825257534-c98e4a8a55aa
X-Vercel-Id1fra1::cnjhv-1723825257580-6a483531945c
X-Vercel-Id1fra1::6fm6x-1723825257681-7bbe4c64f279
X-Vercel-Id1fra1::7tcw4-1723825257628-cdab104d86dc
X-Vercel-Id1fra1::s8n2c-1723825257794-7affa4a9d164
X-Vercel-Id1fra1::7vphk-1723825257831-bbfa61714342
X-Vercel-Id1fra1::575v7-1723825257882-dd58d3091601
X-Vercel-Id1fra1::mz5cc-1723825257730-f36a7fa65416
X-Vercel-Id1fra1::gq68l-1723825257989-00aabaeda3f5
X-Vercel-Id1fra1::8qr6d-1723825257930-eed565066fa1
X-Vercel-Id1fra1::cq8ln-1723825258504-8e0da9cd523e
X-Vercel-Id1fra1::xsvbj-1723825258096-f919ffcfa333
X-Vercel-Id1fra1::4gxn6-1723825258555-ff5f67baf3e2
X-Vercel-Id1fra1::wk26v-1723825258732-a65eb87cc443
X-Vercel-Id1fra1::575v7-1723825258909-9fc3ad0fe804
X-Vercel-Id1fra1::597n2-1723825258032-d59d9dad156b
X-Vercel-Id1fra1::4gxn6-1723825260225-671c3d0b8212
X-Vercel-Id1fra1::r8szl-1723825258960-4daf01cfe93d
X-Vercel-Id1fra1::wjgms-1723825258218-f78a67111dca
X-Vercel-Imgsrc33ef78325b249aec7105d0f82b6c5937a
X-Vercel-Imgsrc2011dbba3b363f52be8a075a9bea0debb
X-Vercel-Imgsrc2dcef878f70525c57a018865982f85d54
X-Vercel-Imgsrc2b4308d542892e72cf72f689b78eb639d
X-Vercel-Imgsrc2a18cac15fa58130c3a04c3f7100ea4c9
X-Vercel-Imgsrc24e869b9140f3b7aaa89ef12cc9119215
X-Vercel-Imgsrc23503ddbd8d8fa4563b40bf40ac5f9686
X-Vercel-Imgsrc12589acd84a94a02c534c942923149ab3
X-Vercel-Imgsrc1ad6ff3791b86f785adf67c2ae9ceead5
X-Vercel-Imgsrc195ab1ebf6855a2aa6ac269c8641a9b04
X-Vercel-Imgsrc14c874634c33da064ff6e9b3cb46e99e1
X-Vercel-Imgsrc15da21c827d3270ebfde87fa4781765e8
X-Vercel-Imgsrc11657afb59e1029f3161522ce885624bf
X-Vercel-Imgsrc136d158a4c4e780c3d4069e3e62bccf35
X-Vercel-Imgsrc1405abdcf97db4b6a758bea3dc115d365
X-Vercel-Imgsrc1dbbb62220f86bca4679b4b17dc80c29d
X-Vercel-Imgsrc1960418337c6f3ca2cc4205cb79385e25
X-Vercel-Imgsrc15fbe68e3b05dc8c3ca20772a0e4db8bf
X-Vercel-Imgsrc10c6fe387c9c6bb8ae3455e668612f893
X-Vercel-Imgsrc169eeebddf8337bf2ce76b00b0508f513
No rows found, please edit your search term.

DNS info

DNS resolving tree
react.dev
  IPv4: 76.76.21.98
  IPv4: 76.76.21.123
DNS server: 10.255.255.254

SSL/TLS info

InfoText
IssuerC = US, O = Let's Encrypt, CN = R10
SubjectCN = react.dev
Valid fromJul 21 06:00:52 2024 GMT (VALID already 26.5 day(s))
Valid toOct 19 06:00:51 2024 GMT (VALID still for 63.5 day(s))
Supported protocolsTLSv1.2, TLSv1.3
RAW certificate outputCertificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            04:fb:1e:21:9e:93:a5:6e:7f:54:db:60:65:c7:f7:a0:8c:19
        Signature Algorithm: sha256WithRSAEncryption
        Issuer: C = US, O = Let's Encrypt, CN = R10
        Validity
            Not Before: Jul 21 06:00:52 2024 GMT
            Not After : Oct 19 06:00:51 2024 GMT
        Subject: CN = react.dev
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:ba:c3:23:75:cd:20:3b:f2:cd:23:b3:6d:d3:07:
                    4a:5a:78:ab:93:af:6c:9d:19:67:d2:66:9e:a0:31:
                    be:33:a1:e1:75:a3:00:66:fb:18:f9:cc:71:f3:ee:
                    80:34:0b:d7:4e:3c:4e:0a:87:9d:5f:45:ce:c0:99:
                    cf:2e:71:33:8a:23:18:c0:dd:9e:a9:41:f6:97:ad:
                    cd:f3:74:16:a0:7b:71:71:82:3e:36:57:03:6e:7a:
                    e9:ce:ec:cf:d1:c9:a4:65:6c:31:2e:40:68:b5:cc:
                    7b:27:45:6e:f1:4c:a8:c2:70:2d:ce:17:65:ed:de:
                    c6:48:c0:e5:71:d8:4e:06:2e:e3:54:a8:35:d8:9d:
                    86:6a:7f:df:85:95:f3:4c:0f:74:e0:db:9b:47:f8:
                    73:bd:16:0a:e9:e6:fa:6b:49:32:24:d1:2d:8e:f9:
                    3b:02:31:32:7a:46:a5:51:5d:1f:f0:18:da:d4:e8:
                    1b:00:41:c8:7f:d2:c2:9d:55:59:86:02:6d:02:f0:
                    a3:ce:08:75:0b:12:b2:95:b3:af:d3:c4:64:9e:40:
                    4f:79:40:28:da:70:c0:52:c4:14:24:0e:bd:33:82:
                    4d:33:3d:f9:ee:74:83:b1:f7:f7:13:d1:60:d9:3a:
                    f5:46:51:48:ff:7d:3a:09:f7:4f:ee:28:c4:e0:b8:
                    2b:23
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment
            X509v3 Extended Key Usage: 
                TLS Web Server Authentication, TLS Web Client Authentication
            X509v3 Basic Constraints: critical
                CA:FALSE
            X509v3 Subject Key Identifier: 
                6A:D1:6D:3C:D8:B7:A5:70:25:CF:51:59:24:03:89:B0:E1:32:05:F2
            X509v3 Authority Key Identifier: 
                BB:BC:C3:47:A5:E4:BC:A9:C6:C3:A4:72:0C:10:8D:A2:35:E1:C8:E8
            Authority Information Access: 
                OCSP - URI:http://r10.o.lencr.org
                CA Issuers - URI:http://r10.i.lencr.org/
            X509v3 Subject Alternative Name: 
                DNS:react.dev
            X509v3 Certificate Policies: 
                Policy: 2.23.140.1.2.1
            CT Precertificate SCTs: 
                Signed Certificate Timestamp:
                    Version   : v1 (0x0)
                    Log ID    : EE:CD:D0:64:D5:DB:1A:CE:C5:5C:B7:9D:B4:CD:13:A2:
                                32:87:46:7C:BC:EC:DE:C3:51:48:59:46:71:1F:B5:9B
                    Timestamp : Jul 21 07:00:52.780 2024 GMT
                    Extensions: none
                    Signature : ecdsa-with-SHA256
                                30:44:02:20:34:3A:A0:25:A9:92:E8:D4:F2:6F:7D:D7:
                                9A:8D:36:36:2B:B1:0C:92:DF:1A:B5:44:37:5A:E7:4A:
                                EF:5E:DD:0B:02:20:2D:1A:EB:72:CE:21:2C:A8:D6:8D:
                                A9:FB:E2:5E:59:B1:2E:43:A9:00:B1:9F:2A:47:13:28:
                                12:A9:13:B2:96:EE
                Signed Certificate Timestamp:
                    Version   : v1 (0x0)
                    Log ID    : DF:E1:56:EB:AA:05:AF:B5:9C:0F:86:71:8D:A8:C0:32:
                                4E:AE:56:D9:6E:A7:F5:A5:6A:01:D1:C1:3B:BE:52:5C
                    Timestamp : Jul 21 07:00:53.038 2024 GMT
                    Extensions: none
                    Signature : ecdsa-with-SHA256
                                30:45:02:21:00:B5:24:D8:FC:53:57:16:38:18:2D:E8:
                                F0:6C:D7:DB:93:43:FF:14:1A:08:49:4D:03:9A:95:B1:
                                9A:76:0A:AB:6B:02:20:17:5B:D1:07:89:02:36:3F:5A:
                                0F:B1:53:61:AC:7F:5F:14:03:97:D0:AB:7E:65:E0:45:
                                8E:88:47:46:E9:0D:1D
    Signature Algorithm: sha256WithRSAEncryption
    Signature Value:
        82:f4:0a:7c:26:6b:39:04:46:3f:fa:87:2f:ef:c3:17:97:34:
        8b:48:d5:06:18:07:e1:f4:0e:d0:e4:9e:ed:cd:6d:7c:4f:07:
        ee:b1:00:56:c8:6c:9b:42:ba:03:be:e5:49:59:f7:33:bf:3c:
        1e:71:e0:7b:bd:a2:de:39:83:2c:9d:91:ce:91:5a:16:04:22:
        ef:52:55:0a:b3:48:7f:c6:68:2b:b1:b3:df:15:d8:ba:bb:d0:
        ed:c2:fd:c6:1d:30:e3:af:a3:be:e1:08:e3:0a:6d:96:68:ba:
        34:96:18:03:2a:22:b5:e6:8b:2d:88:0b:fd:b7:42:63:8f:8a:
        9b:7e:4d:95:36:6c:02:c1:4d:94:ad:c5:3f:9e:44:4f:4a:4f:
        76:59:33:9f:f6:05:75:d1:7e:f8:f3:4a:f7:ed:ae:35:cb:45:
        9c:79:53:9c:69:be:52:43:7f:19:62:07:f4:2f:59:df:e9:cf:
        23:fb:ce:48:9f:96:9e:1e:79:07:61:a8:c1:20:6d:02:45:f9:
        6a:b9:8d:cb:78:61:86:57:7d:85:90:8f:13:a5:52:3a:b6:f0:
        86:52:72:7f:63:c9:df:a6:39:fb:ae:6b:34:49:57:f0:7a:f7:
        a7:a0:62:8b:19:73:f5:5a:63:f9:55:57:25:9c:c2:e3:45:e3:
        ab:c8:57:52
RAW protocols outputdepth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R10
verify return:1
depth=0 CN = react.dev
verify return:1
CONNECTED(00000005)
---
Certificate chain
 0 s:CN = react.dev
   i:C = US, O = Let's Encrypt, CN = R10
   a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256
   v:NotBefore: Jul 21 06:00:52 2024 GMT; NotAfter: Oct 19 06:00:51 2024 GMT
 1 s:C = US, O = Let's Encrypt, CN = R10
   i:C = US, O = Internet Security Research Group, CN = ISRG Root X1
   a:PKEY: rsaEncryption, 2048 (bit); sigalg: RSA-SHA256
   v:NotBefore: Mar 13 00:00:00 2024 GMT; NotAfter: Mar 12 23:59:59 2027 GMT
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIE4TCCA8mgAwIBAgISBPseIZ6TpW5/VNtgZcf3oIwZMA0GCSqGSIb3DQEBCwUA
MDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQwwCgYDVQQD
EwNSMTAwHhcNMjQwNzIxMDYwMDUyWhcNMjQxMDE5MDYwMDUxWjAUMRIwEAYDVQQD
EwlyZWFjdC5kZXYwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6wyN1
zSA78s0js23TB0paeKuTr2ydGWfSZp6gMb4zoeF1owBm+xj5zHHz7oA0C9dOPE4K
h51fRc7Amc8ucTOKIxjA3Z6pQfaXrc3zdBage3Fxgj42VwNueunO7M/RyaRlbDEu
QGi1zHsnRW7xTKjCcC3OF2Xt3sZIwOVx2E4GLuNUqDXYnYZqf9+FlfNMD3Tg25tH
+HO9Fgrp5vprSTIk0S2O+TsCMTJ6RqVRXR/wGNrU6BsAQch/0sKdVVmGAm0C8KPO
CHULErKVs6/TxGSeQE95QCjacMBSxBQkDr0zgk0zPfnudIOx9/cT0WDZOvVGUUj/
fToJ90/uKMTguCsjAgMBAAGjggIMMIICCDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l
BBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE
FGrRbTzYt6VwJc9RWSQDibDhMgXyMB8GA1UdIwQYMBaAFLu8w0el5LypxsOkcgwQ
jaI14cjoMFcGCCsGAQUFBwEBBEswSTAiBggrBgEFBQcwAYYWaHR0cDovL3IxMC5v
LmxlbmNyLm9yZzAjBggrBgEFBQcwAoYXaHR0cDovL3IxMC5pLmxlbmNyLm9yZy8w
FAYDVR0RBA0wC4IJcmVhY3QuZGV2MBMGA1UdIAQMMAowCAYGZ4EMAQIBMIIBAwYK
KwYBBAHWeQIEAgSB9ASB8QDvAHUA7s3QZNXbGs7FXLedtM0TojKHRny87N7DUUhZ
RnEftZsAAAGQ1BffrAAABAMARjBEAiA0OqAlqZLo1PJvfdeajTY2K7EMkt8atUQ3
WudK717dCwIgLRrrcs4hLKjWjan74l5ZsS5DqQCxnypHEygSqROylu4AdgDf4Vbr
qgWvtZwPhnGNqMAyTq5W2W6n9aVqAdHBO75SXAAAAZDUF+CuAAAEAwBHMEUCIQC1
JNj8U1cWOBgt6PBs19uTQ/8UGghJTQOalbGadgqrawIgF1vRB4kCNj9aD7FTYax/
XxQDl9CrfmXgRY6IR0bpDR0wDQYJKoZIhvcNAQELBQADggEBAIL0CnwmazkERj/6
hy/vwxeXNItI1QYYB+H0DtDknu3NbXxPB+6xAFbIbJtCugO+5UlZ9zO/PB5x4Hu9
ot45gyydkc6RWhYEIu9SVQqzSH/GaCuxs98V2Lq70O3C/cYdMOOvo77hCOMKbZZo
ujSWGAMqIrXmiy2IC/23QmOPipt+TZU2bALBTZStxT+eRE9KT3ZZM5/2BXXRfvjz
SvftrjXLRZx5U5xpvlJDfxliB/QvWd/pzyP7zkiflp4eeQdhqMEgbQJF+Wq5jct4
YYZXfYWQjxOlUjq28IZScn9jyd+mOfuuazRJV/B696egYosZc/VaY/lVVyWcwuNF
46vIV1I=
-----END CERTIFICATE-----
subject=CN = react.dev
issuer=C = US, O = Let's Encrypt, CN = R10
---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 3087 bytes and written 307 bytes
Verification: OK
---
New, TLSv1.3, Cipher is TLS_AES_128_GCM_SHA256
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---
DONE
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
    Protocol  : TLSv1.3
    Cipher    : TLS_AES_128_GCM_SHA256
    Session-ID: 1FC33D61CBA3D69CFAEDB4D719412D49CA1174D816E1797905A57753418130B8
    Session-ID-ctx: 
    Resumption PSK: 335486ECA40CBCF9DA480ED15FDF080558A68B78AFA57A5383BB28E2CC8BF05A
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 604800 (seconds)
    TLS session ticket:
    0000 - 82 8f f7 53 06 93 10 e7-fe 1d 4e 82 95 56 e9 d2   ...S......N..V..
    0010 - 84 29 aa 7c 7f 4b 3b d0-58 24 9a 5d 24 41 64 33   .).|.K;.X$.]$Ad3
    0020 - f5 92 78 cb dd 72 a5 df-5c f9 b7 ee 46 57 12 a6   ..x..r..\...FW..
    0030 - d9 56 a6 2e 2b 5d d9 9c-2b d6 bc 7c 54 e9 ec a9   .V..+]..+..|T...
    0040 - 9f bf a4 11 bd a4 5f 21-bf e0 02 9c e6 1b 1e 37   ......_!.......7
    0050 - 2f e5 85 c1 39 9c 2c 34-50 8a 47 94 c4 2e 2b 4f   /...9.,4P.G...+O
    0060 - c4 db 58 d8 0d b5 df e0-b4                        ..X......

    Start Time: 1723834089
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
    Max Early Data: 0
---
read R BLOCK

Crawler stats

Basic stats
Total execution time7.7 s
Total URLs626
Total size61 MB
Requests - total time92 s
Requests - avg time147 ms
Requests - min time39 ms
Requests - max time1.2 s
Requests by status200 : 621
307 : 2
308 : 2
404 : 1

Analysis stats

Found 20 row(s).
Class::methodExec time 🔽Exec count
Manager::parseDOMDocument1.1 s 165
AccessibilityAnalyzer::checkMissingRoles469 ms 163
SslTlsAnalyzer::getTLSandSSLCertificateInfo403 ms 1
BestPracticeAnalyzer::checkInlineSvg307 ms 165
BestPracticeAnalyzer::checkNonClickablePhoneNumbers242 ms 165
AccessibilityAnalyzer::checkMissingAriaLabels216 ms 163
BestPracticeAnalyzer::checkHeadingStructure211 ms 165
BestPracticeAnalyzer::checkMaxDOMDepth179 ms 165
BestPracticeAnalyzer::checkMissingQuotesOnAttributes60 ms 165
AccessibilityAnalyzer::checkMissingLabels26 ms 163
AccessibilityAnalyzer::checkImageAltAttributes4 ms 163
AccessibilityAnalyzer::checkMissingLang1 ms 163
SeoAndOpenGraphAnalyzer::analyzeSeo1 ms 1
SeoAndOpenGraphAnalyzer::analyzeHeadings0 ms 1
SeoAndOpenGraphAnalyzer::analyzeOpenGraph0 ms 1
BestPracticeAnalyzer::checkTitleUniqueness0 ms 1
BestPracticeAnalyzer::checkMetaDescriptionUniqueness0 ms 1
BestPracticeAnalyzer::checkWebpSupport0 ms 1
BestPracticeAnalyzer::checkBrotliSupport0 ms 1
BestPracticeAnalyzer::checkAvifSupport0 ms 1
No rows found, please edit your search term.

Content processor stats

Found 12 row(s).
Class::methodExec time 🔽Exec count
HtmlProcessor::findUrls106 ms 168
NextJsProcessor::applyContentChangesBeforeUrlParsing24 ms 178
AstroProcessor::findUrls24 ms 176
CssProcessor::findUrls4 ms 165
JavaScriptProcessor::findUrls3 ms 176
AstroProcessor::applyContentChangesBeforeUrlParsing0 ms 177
NextJsProcessor::findUrls0 ms 177
SvelteProcessor::findUrls0 ms 164
HtmlProcessor::applyContentChangesBeforeUrlParsing0 ms 169
JavaScriptProcessor::applyContentChangesBeforeUrlParsing0 ms 177
CssProcessor::applyContentChangesBeforeUrlParsing0 ms 166
SvelteProcessor::applyContentChangesBeforeUrlParsing0 ms 165
No rows found, please edit your search term.

Crawler info

Version 1.0.7.20231222
Executed At 2024-08-16 18:48:02
Commandsrc/crawler.php \
  --workers=3 \
  --max-reqs-per-sec=20 \
  --upload \
  --upload-retention=forever \
  --max-visited-urls=1000 \
  --allowed-domain-for-external-files=* \
  --extra-columns=X-Vercel-Cache,Title(50) \
  --url=https://react.dev/
User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/24.0.0.0 Safari/537.36 siteone-crawler/1.0.7.20231222