- Added warnings to help migrate towards descriptors
- Made it possible to server render without React-related markup (
data-reactid,data-react-checksum). This DOM will not be mountable by React. Read the docs forReact.renderComponentToStaticMarkup - Added support for more attributes:
srcSetfor<img>to specify images at different pixel ratiostextAnchorfor SVG
- Ensure all void elements don’t insert a closing tag into the markup.
- Ensure
className={false}behaves consistently - Ensure
this.refsis defined, even if no refs are specified.
updatefunction to deal with immutable data. Read the docs
- Added an option argument to
transformfunction. The only option supported isharmony, which behaves the same asjsx --harmonyon the command line. This uses the ES6 transforms from jstransform.
- 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 removedReact.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
- 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 requestsdownloadandhrefLangfor<a>tagsmediaGroupandmutedfor<audio>and<video>tagsnoValidateandformNoValidatefor formspropertyfor Open Graph<meta>tagssandbox,seamless, andsrcDocfor<iframe>tagsscopefor screen readersspanfor<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
- 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.addons.TestUtilswas added to help write unit testsReact.addons.TransitionGroupwas renamed toReact.addons.CSSTransitionGroupReact.addons.TransitionGroupwas added as a more general animation wrapperReact.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
- 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 browsersJSXTransformererror messages now include the filename and problematic line contents when a file fails to parse
- Added support for more attributes:
rows&colsfor<textarea>defer&asyncfor<script>loopfor<audio>&<video>autoCorrectfor form fields (a non-standard attribute only supported by mobile WebKit)
- Improved error messages
- Fixed Selection events in IE11
- Added
onContextMenuevents
- Fixed bugs with TransitionGroup when children were undefined
- Added support for
onTransition
- Upgraded
jstransformandesprima-fb
- Added support for use in IE8
- Upgraded browserify, which reduced file size by ~65KB (16KB gzipped)
- Fixed a potential XSS vulnerability when using user content as a
key: CVE-2013-7035
- Fixed bug with
<input type="range">and selection events. - Fixed bug with selection and focus.
- Made it possible to unmount components from the document root.
- Fixed bug for
disabledattribute handling on non-<input>elements.
- Fixed bug with transition and animation event detection.
- Memory usage improvements - reduced allocations in core which will help with GC pauses
- Performance improvements - in addition to speeding things up, we made some tweaks to stay out of slow path code in V8 and Nitro.
- Standardized prop -> DOM attribute process. This previously resulting in additional type checking and overhead as well as confusing cases for users. Now we will always convert your value to a string before inserting it into the DOM.
- Support for Selection events.
- Support for Composition events.
- Support for additional DOM properties (
charSet,content,form,httpEquiv,rowSpan,autoCapitalize). - Support for additional SVG properties (
rx,ry). - Support for using
getInitialStateandgetDefaultPropsin mixins. - Support mounting into iframes.
- Bug fixes for controlled form components.
- Bug fixes for SVG element creation.
- Added
React.version. - Added
React.isValidClass- Used to determine if a value is a valid component constructor. - Removed
React.autoBind- This was deprecated in v0.4 and now properly removed. - Renamed
React.unmountAndReleaseReactRootNodetoReact.unmountComponentAtNode. - Began laying down work for refined performance analysis.
- Better support for server-side rendering - react-page has helped improve the stability for server-side rendering.
- Made it possible to use React in environments enforcing a strict Content Security Policy. This also makes it possible to use React to build Chrome extensions.
- Introduced a separate build with several "addons" which we think can help improve the React experience. We plan to deprecate this in the long-term, instead shipping each as standalone pieces. Read more in the docs.
- No longer transform
classtoclassNameas part of the transform! This is a breaking change - if you were usingclass, you must change this toclassNameor your components will be visually broken. - Added warnings to the in-browser transformer to make it clear it is not intended for production use.
- Improved compatibility for Windows
- Improved support for maintaining line numbers when transforming.
setStatecallbacks are now executed in the scope of your component.clickevents now work on Mobile Safari.- Prevent a potential error in event handling if
Object.prototypeis extended. - Don't set DOM attributes to the string
"undefined"on update when previously defined. - Improved support for
<iframe>attributes. - Added checksums to detect and correct cases where server-side rendering markup mismatches what React expects client-side.
- Improved environment detection so it can be run in a non-browser environment.
- Switch from using
idattribute todata-reactidto track DOM nodes. This allows you to integrate with other JS and CSS libraries more easily. - Support for more DOM elements and attributes (e.g.,
<canvas>) - Improved server-side rendering APIs.
React.renderComponentToString(<component>, callback)allows you to use React on the server and generate markup which can be sent down to the browser. propimprovements: validation and default values. Read our blog post for details...- Support for the
keyprop, which allows for finer control over reconciliation. Read the docs for details... - Removed
React.autoBind. Read our blog post for details... - Improvements to forms. We've written wrappers around
<input>,<textarea>,<option>, and<select>in order to standardize many inconsistencies in browser implementations. This includes support fordefaultValue, and improved implementation of theonChangeevent, and circuit completion. Read the docs for details... - We've implemented an improved synthetic event system that conforms to the W3C spec.
- Updates to your component are batched now, which may result in a significantly faster re-render of components.
this.setStatenow takes an optional callback as it's second parameter. If you were usingonClick={this.setState.bind(this, state)}previously, you'll want to make sure you add a third parameter so that the event is not treated as the callback.
- Support for comment nodes
<div>{/* this is a comment and won't be rendered */}</div> - Children are now transformed directly into arguments instead of being wrapped in an array
E.g.
<div><Component1/><Component2/></div>is transformed intoReact.DOM.div(null, Component1(null), Component2(null)). Previously this would be transformed intoReact.DOM.div(null, [Component1(null), Component2(null)]). If you were using React without JSX previously, your code should still work.
- Fixed a number of bugs when transforming directories
- No longer re-write
require()s to be relative unless specified
- Allow reusing the same DOM node to render different components. e.g.
React.renderComponent(<div/>, domNode); React.renderComponent(<span/>, domNode);will work now.
- Improved the in-browser transformer so that transformed scripts will execute in the expected scope. The allows components to be defined and used from separate files.
- Upgrade Commoner so
requirestatements are no longer relativized when passing through the transformer. This was a feature needed when building React, but doesn't translate well for other consumers ofbin/jsx. - Upgraded our dependencies on Commoner and Recast so they use a different directory for their cache.
- Freeze our esprima dependency.
- Improved compatability with other coding styles (specifically, multiple assignments with a single
var).
- Switch from using the browserified build to shipping individual modules. This allows react-tools to be used with browserify.
- Fix bug in packaging resulting in broken module.
- Initial public release