Update Jun 8, 2026 tracked by Updatify
0.9.0 (February 20, 2014)
React Core
Breaking Changes
-
The lifecycle methods
componentDidMountandcomponentDidUpdateno longer receive the root node as a parameter; usethis.getDOMNode()instead -
Whenever a prop is equal to
undefined, the default value returned bygetDefaultPropswill now be used instead -
React.unmountAndReleaseReactRootNodewas previously deprecated and has now been removed -
React.renderComponentToStringis now synchronous and returns the generated HTML string -
Full-page rendering (that is, rendering the
<html>tag using React) is now supported only when starting with server-rendered markup -
On mouse wheel events,
deltaYis no longer negated - When prop types validation fails, a warning is logged instead of an error thrown (with the production build of React, type checks are now skipped for performance)
-
On
input,select, andtextareaelements,.getValue()is no longer supported; use.getDOMNode().valueinstead -
this.contexton components is now reserved for internal use by React
New Features
- React now never rethrows errors, so stack traces are more accurate and Chrome’s purple break-on-error stop sign now works properly
-
Added support for SVG tags
defs,linearGradient,polygon,radialGradient,stop -
Added support for more attributes:
-
crossOriginfor CORS requests -
downloadandhrefLangfor<a>tags -
mediaGroupandmutedfor<audio>and<video>tags -
noValidateandformNoValidatefor forms -
propertyfor Open Graph<meta>tags -
sandbox,seamless, andsrcDocfor<iframe>tags -
scopefor screen readers -
spanfor<colgroup>tags
-
-
Added support for defining
propTypesin mixins -
Added
any,arrayOf,component,oneOfType,renderable,shapetoReact.PropTypes -
Added support for
staticson component spec for static component methods -
On all events,
.currentTargetis now properly set -
On keyboard events,
.keyis now polyfilled in all browsers for special (non-printable) keys -
On clipboard events,
.clipboardDatais now polyfilled in IE -
On drag events,
.dragTransferis now present -
Added support for
onMouseOverandonMouseOutin addition to the existingonMouseEnterandonMouseLeaveevents -
Added support for
onLoadandonErroron<img>elements -
Added support for
onReseton<form>elements -
The
autoFocusattribute is now polyfilled consistently oninput,select, andtextarea
Bug Fixes
-
React no longer adds an
__owner__property to each component’spropsobject; passed-in props are now never mutated -
When nesting top-level components (e.g., calling
React.renderComponentwithincomponentDidMount), events now properly bubble to the parent component - Fixed a case where nesting top-level components would throw an error when updating
- Passing an invalid or misspelled propTypes type now throws an error
-
On mouse enter/leave events,
.target,.relatedTarget, and.typeare now set properly -
On composition events,
.datais now properly normalized in IE9 and IE10 -
CSS property values no longer have
pxappended for the unitless propertiescolumnCount,flex,flexGrow,flexShrink,lineClamp,order,widows -
Fixed a memory leak when unmounting children with a
componentWillUnmounthandler -
Fixed a memory leak when
renderComponentToStringwould store event handlers - Fixed an error that could be thrown when removing form elements during a click handler
-
Boolean attributes such as
disabledare rendered without a value (previouslydisabled="true", now simplydisabled) -
keyvalues containing.are now supported -
Shortened
data-reactidvalues for performance -
Components now always remount when the
keyproperty changes -
Event handlers are attached to
documentonly when necessary, improving performance in some cases -
Events no longer use
.returnValuein modern browsers, eliminating a warning in Chrome -
scrollLeftandscrollTopare no longer accessed on document.body, eliminating a warning in Chrome - General performance fixes, memory optimizations, improvements to warnings and error messages
React with Addons
-
React.addons.TestUtilswas added to help write unit tests -
React.addons.TransitionGroupwas renamed toReact.addons.CSSTransitionGroup -
React.addons.TransitionGroupwas added as a more general animation wrapper -
React.addons.cloneWithPropswas added for cloning components and modifying their props - Bug fix for adding back nodes during an exit transition for CSSTransitionGroup
-
Bug fix for changing
transitionLeavein CSSTransitionGroup - Performance optimizations for CSSTransitionGroup
-
On checkbox
<input>elements,checkedLinkis now supported for two-way binding
JSX Compiler and react-tools Package
- Whitespace normalization has changed; now space between two tags on the same line will be preserved, while newlines between two tags will be removed
-
The
react-toolsnpm package no longer includes the React core libraries; use thereactpackage instead. -
displayNameis now added in more cases, improving error messages and names in the React Dev Tools - Fixed an issue where an invalid token error was thrown after a JSX closing tag
-
JSXTransformernow uses source maps automatically in modern browsers -
JSXTransformererror messages now include the filename and problematic line contents when a file fails to parse