NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #1245 most downloaded on npm
React is a JavaScript library for building user interfaces.
Last release today
02 Oct 2026
Ships on a steady schedule
a new release about every 8 days
Some releases are documented
notes for 16 of 38 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
2742 releases · first in 2019
Nothing published for this version
Nothing published for this version
Nothing published for this version
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fixed bug with development build preventing events from firing in some versions of Internet Explorer & Edge
integrity attributechildren prop being coerced to a string for custom elements, which was not the desired behaviorreact from dependencies to peerDependencies to match expectations and align with react-addons-* packagesFixed bug where events wouldn't fire in old browsers when using React in development mode
dangerouslySetInnerHTML with Closure Compiler Advanced modesrcLang, default, and kind attributes for <track> elementscolor attribute.props access on DOM nodes is updated on re-rendersscryRenderedDOMComponentsWithClass so it works with SVG0 to be used as a timeout valuereact-dom.js to main to improve compatibility with toolingSee http://facebook.github.io/react/blog/2015/10/07/react-v0.14.html.
See http://facebook.github.io/react/blog/2015/10/07/react-v0.14.html.
react package into two: react and react-dom. This paves the way to writing components that can be shared between the web version of React and React Native. This means you will need to include both files and some functions have been moved from React to ReactDOM.react-addons-clone-with-props, react-addons-create-fragment, react-addons-css-transition-group, react-addons-linked-state-mixin, react-addons-perf, react-addons-pure-render-mixin, react-addons-shallow-compare, react-addons-test-utils, react-addons-transition-group, react-addons-update, ReactDOM.unstable_batchedUpdates).props) which returns a JSX element, and this function may be used as a component.getDOMNode() to get the underlying DOM node. Starting with this release, a ref to a DOM component is the actual DOM node. Note that refs to custom (user-defined) components work exactly as before; only the built-in DOM components are affected by this change.React.initializeTouchEvents is no longer necessary and has been removed completely. Touch events now work automatically.TestUtils.findAllInRenderedTree and related helpers are no longer able to take a DOM component, only a custom component.props object is now frozen, so mutating props after creating a component element is no longer supported. In most cases, React.cloneElement should be used instead. This change makes your components easier to reason about and enables the compiler optimizations mentioned above.createFragment helper to migrate, which now returns an array.classSet has been removed. Use classnames instead.class instead of className.this.getDOMNode() is now deprecated and ReactDOM.findDOMNode(this) can be used instead. Note that in the common case, findDOMNode is now unnecessary since a ref to the DOM component is now the actual DOM node.setProps and replaceProps are now deprecated. Instead, call ReactDOM.render again at the top level with the new props.React.Component in order to enable stateless function components. The ES3 module pattern will continue to work.style object between renders has been deprecated. This mirrors our change to freeze the props object.cloneWithProps is now deprecated. Use React.cloneElement instead (unlike cloneWithProps, cloneElement does not merge className or style automatically; you can merge them manually if needed).CSSTransitionGroup will no longer listen to transition events. Instead, you should specify transition durations manually using props such as transitionEnterTimeout={500}.React.Children.toArray which takes a nested children object and returns a flat array with keys assigned to each child. This helper makes it easier to manipulate collections of children in your render methods, especially if you want to reorder or slice this.props.children before passing it down. In addition, React.Children.map now returns plain arrays too.console.error instead of console.warn for warnings so that browsers show a full stack trace in the console. (Our warnings appear when you use patterns that will break in future releases and for code that is likely to behave unexpectedly, so we do consider our warnings to be “must-fix” errors.)Symbol in browsers that support it, in order to ensure that React never considers untrusted JSON to be a valid element. If this extra security protection is important to you, you should add a Symbol polyfill for older browsers, such as the one included by Babel’s polyfill.capture, challenge, inputMode, is, keyParams, keyType, minLength, summary, wrap. It also now supports these non-standard attributes: autoSave, results, security.xlinkActuate, xlinkArcrole, xlinkHref, xlinkRole, xlinkShow, xlinkTitle, xlinkType, xmlBase, xmlLang, xmlSpace.image SVG tag is now supported by React DOM.is="..." attribute).audio and video tags: onAbort, onCanPlay, onCanPlayThrough, onDurationChange, onEmptied, onEncrypted, onEnded, onError, onLoadedData, onLoadedMetadata, onLoadStart, onPause, onPlay, onPlaying, onProgress, onRateChange, onSeeked, onSeeking, onStalled, onSuspend, onTimeUpdate, onVolumeChange, onWaiting.shallowCompare add-on has been added as a migration path for PureRenderMixin in ES6 classes.CSSTransitionGroup can now use custom class names instead of appending -enter-active or similar to the transition name.document.body directly as the container to ReactDOM.render now gives a warning as doing so can cause problems with browser extensions that modify the DOM.<option> elements with multiple text children properly and renders <select> elements on the server with the correct option selected.React.createElement('DIV')) no longer causes problems, though we continue to recommend lowercase for consistency with the JSX tag name convention (lowercase names refer to built-in components, capitalized names refer to custom components).animationIterationCount, boxOrdinalGroup, flexOrder, tabSize, stopOpacity.Simulate.mouseEnter and Simulate.mouseLeave now work.react-tools package and JSXTransformer.js browser file have been deprecated. You can continue using version 0.13.3 of both, but we no longer support them and recommend migrating to Babel, which has built-in support for React and JSX.optimisation.react.inlineElements transform converts JSX elements to object literals like {type: 'div', props: ...} instead of calls to React.createElement. This should only be enabled in production, since it disables some development warnings/checks.optimisation.react.constantElements transform hoists element creation to the top level for subtrees that are fully static, which reduces calls to React.createElement and the resulting allocations. More importantly, it tells React that the subtree hasn’t changed so React can completely skip it when reconciling. This should only be enabled in production, since it disables some development warnings/checks.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →