react-dom
Advanced tools
Changelog
17.0.0 (October 20, 2020)
Today, we are releasing React 17!
Learn more about React 17 and how to update to it on the official React blog.
react/jsx-runtime
and react/jsx-dev-runtime
for the new JSX transform. (@lunaruan in #18299)displayName
on context for improved stacks. (@eps1lon in #18224)'use strict'
from leaking in the UMD bundles. (@koba04 in #19614)fb.me
for redirects. (@cylim in #19598)document
. (@trueadm in #18195 and others)useEffect
cleanup functions asynchronously. (@bvaughn in #17925)focusin
and focusout
for onFocus
and onBlur
. (@trueadm in #19186)Capture
events use the browser capture phase. (@trueadm in #19221)onScroll
event. (@gaearon in #19464)forwardRef
or memo
component returns undefined
. (@gaearon in #19550)console
in the second render pass of DEV mode double render. (@sebmarkbage in #18547)ReactTestUtils.SimulateNative
API. (@gaearon in #13407)ReactDOM.flushSync
during lifecycle methods (but warn). (@sebmarkbage in #18759)code
property to the keyboard event objects. (@bl00mber in #18287)disableRemotePlayback
property for video
elements. (@tombrowndev in #18619)enterKeyHint
property for input
elements. (@eps1lon in #18634)value
is provided to <Context.Provider>
. (@charlie1404 in #19054)memo
or forwardRef
components return undefined
. (@bvaughn in #19550)onTouchStart
, onTouchMove
, and onWheel
passive. (@gaearon in #19654)setState
hanging in development inside a closed iframe. (@gaearon in #19220)defaultProps
. (@jddxf in #18539)dangerouslySetInnerHTML
is undefined
. (@eps1lon in #18676)require
implementation. (@just-boris in #18632)onBeforeInput
reporting an incorrect event.type
. (@eps1lon in #19561)event.relatedTarget
reported as undefined
in Firefox. (@claytercek in #19607)movementX/Y
polyfill with capture events. (@gaearon in #19672)onSubmit
and onReset
events. (@gaearon in #19333)useCallback
behavior consistent with useMemo
for the server renderer. (@alexmckenley in #18783)findByType
error message. (@henryqdineen in #17439)unstable_
prefix before the experimental APIs. (@acdlite in #18825)unstable_discreteUpdates
and unstable_flushDiscreteUpdates
. (@trueadm in #18825)timeoutMs
argument. (@acdlite in #19703)<div hidden />
prerendering in favor of a different future API. (@acdlite in #18917)unstable_expectedLoadTime
to Suspense for CPU-bound trees. (@acdlite in #19936)unstable_useOpaqueIdentifier
Hook. (@lunaruan in #17322)unstable_startTransition
API. (@rickhanlonii in #19696)act
in the test renderer no longer flushes Suspense fallbacks. (@acdlite in #18596)useMutableSource
that may happen when getSnapshot
changes. (@bvaughn in #18297)useMutableSource
. (@bvaughn in #18912)