- Added support for more attributes:
rows
&cols
for<textarea>
defer
&async
for<script>
loop
for<audio>
&<video>
autoCorrect
for form fields (a non-standard attribute only supported by mobile WebKit)
- Improved error messages
- Fixed Selection events in IE11
- Added
onContextMenu
events
- Fixed bugs with TransitionGroup when children were undefined
- Added support for
onTransition
- Upgraded
jstransform
andesprima-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
disabled
attribute 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
getInitialState
andgetDefaultProps
in 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.unmountAndReleaseReactRootNode
toReact.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
class
toclassName
as part of the transform! This is a breaking change - if you were usingclass
, you must change this toclassName
or 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.
setState
callbacks are now executed in the scope of your component.click
events now work on Mobile Safari.- Prevent a potential error in event handling if
Object.prototype
is 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
id
attribute todata-reactid
to 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. prop
improvements: validation and default values. Read our blog post for details...- Support for the
key
prop, 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 theonChange
event, 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.setState
now 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
require
statements 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