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)