All Versions
102
Latest Version
Avg Release Cycle
56 days
Latest Release
674 days ago

Changelog History
Page 9

  • v0.13.1 Changes

    March 16, 2015

    React Core

    πŸ› Bug Fixes

    • Don't throw when rendering empty <select> elements
    • πŸ’… Ensure updating style works when transitioning from null

    React with Add-Ons

    πŸ› Bug Fixes

    • βœ… TestUtils: Don't warn about getDOMNode for ES6 classes
    • βœ… TestUtils: Ensure wrapped full page components (<html>, <head>, <body>) are treated as DOM components
    • Perf: Stop double-counting DOM components

    React Tools

    πŸ› Bug Fixes

    • πŸ›  Fix option parsing for --non-strict-es6module
  • v0.13.0 Changes

    March 10, 2015

    React Core

    πŸ’₯ Breaking Changes

    • πŸ—„ Deprecated patterns that warned in 0.12 no longer work: most prominently, calling component classes without using JSX or React.createElement and using non-component functions with JSX or createElement
    • 🐎 Mutating props after an element is created is deprecated and will cause warnings in development mode; future versions of React will incorporate performance optimizations assuming that props aren't mutated
    • Static methods (defined in statics) are no longer autobound to the component class
    • ref resolution order has changed slightly such that a ref to a component is available immediately after its componentDidMount method is called; this change should be observable only if your component calls a parent component's callback within your componentDidMount, which is an anti-pattern and should be avoided regardless
    • πŸ”€ Calls to setState in life-cycle methods are now always batched and therefore asynchronous. Previously the first call on the first mount was synchronous.
    • ⚑️ setState and forceUpdate on an unmounted component now warns instead of throwing. That avoids a possible race condition with Promises.
    • Access to most internal properties has been completely removed, including this._pendingState and this._rootNodeID.

    πŸ†• New Features

    • πŸ‘Œ Support for using ES6 classes to build React components; see the v0.13.0 beta 1 notes for details.
    • βž• Added new top-level API React.findDOMNode(component), which should be used in place of component.getDOMNode(). The base class for ES6-based components will not have getDOMNode. This change will enable some more patterns moving forward.
    • βž• Added a new top-level API React.cloneElement(el, props) for making copies of React elements – see the v0.13 RC2 notes for more details.
    • New ref style, allowing a callback to be used in place of a name: <Photo ref={(c) => this._photo = c} /> allows you to reference the component with this._photo (as opposed to ref="photo" which gives this.refs.photo).
    • ⚑️ this.setState() can now take a function as the first argument for transactional state updates, such as this.setState((state, props) => ({count: state.count + 1})); – this means that you no longer need to use this._pendingState, which is now gone.
    • πŸ‘Œ Support for iterators and immutable-js sequences as children.

    πŸ—„ Deprecations

    • πŸ—„ ComponentClass.type is deprecated. Just use ComponentClass (usually as element.type === ComponentClass).
    • 🚚 Some methods that are available on createClass-based components are removed or deprecated from ES6 classes (getDOMNode, replaceState, isMounted, setProps, replaceProps).

    React with Add-Ons

    πŸ†• New Features

    πŸ—„ Deprecations

    • πŸ“¦ React.addons.classSet is now deprecated. This functionality can be replaced with several freely available modules. classnames is one such module.
    • πŸ’… Calls to React.addons.cloneWithProps can be migrated to use React.cloneElement instead – make sure to merge style and className manually if desired.

    React Tools

    πŸ’₯ Breaking Changes

    • 0️⃣ When transforming ES6 syntax, class methods are no longer enumerable by default, which requires Object.defineProperty; if you support browsers such as IE8, you can pass --target es3 to mirror the old behavior

    πŸ†• New Features

    • --target option is available on the jsx command, allowing users to specify and ECMAScript version to target.
      • es5 is the default.
      • es3 restores the previous default behavior. An additional transform is added here to ensure the use of reserved words as properties is safe (eg this.static will become this['static'] for IE8 compatibility).
    • The transform for the call spread operator has also been enabled.

    JSXTransformer

    πŸ’₯ Breaking Changes

    • The return value of transform now contains sourceMap as a JS object already, not an instance of SourceMapGenerator.

    JSX

    πŸ’₯ Breaking Changes

    • A change was made to how some JSX was parsed, specifically around the use of > or } when inside an element. Previously it would be treated as a string but now it will be treated as a parse error. The jsx_orphaned_brackets_transformer package on npm can be used to find and fix potential issues in your JSX code.
  • v0.12.2 Changes

    December 18, 2014

    React Core

    • βž• Added support for more HTML attributes: formAction, formEncType, formMethod, formTarget, marginHeight, marginWidth
    • βž• Added strokeOpacity to the list of unitless CSS properties
    • βœ‚ Removed trailing commas (allows npm module to be bundled and used in IE8)
    • πŸ›  Fixed bug resulting in error when passing undefined to React.createElement - now there is a useful warning

    React Tools

    • JSX-related transforms now always use double quotes for props and displayName
  • v0.12.1 Changes

    November 18, 2014

    React Tools

    • ⚑️ Types transform updated with latest support
    • ⚑️ jstransform version updated with improved ES6 transforms
    • 🚚 Explicit Esprima dependency removed in favor of using Esprima information exported by jstransform
  • v0.12.0 Changes

    October 28, 2014

    React Core

    πŸ’₯ Breaking Changes

    • 🚚 key and ref moved off props object, now accessible on the element directly
    • React is now BSD licensed with accompanying Patents grant
    • 🚚 Default prop resolution has moved to Element creation time instead of mount time, making them effectively static
    • 🚚 React.__internals is removed - it was exposed for DevTools which no longer needs access
    • Composite Component functions can no longer be called directly - they must be wrapped with React.createFactory first. This is handled for you when using JSX.

    πŸ†• New Features

    • πŸ—„ Spread operator ({...}) introduced to deprecate this.transferPropsTo
    • βž• Added support for more HTML attributes: acceptCharset, classID, manifest

    πŸ—„ Deprecations

    • React.renderComponent --> React.render
    • React.renderComponentToString --> React.renderToString
    • React.renderComponentToStaticMarkup --> React.renderToStaticMarkup
    • React.isValidComponent --> React.isValidElement
    • React.PropTypes.component --> React.PropTypes.element
    • React.PropTypes.renderable --> React.PropTypes.node
    • πŸ—„ DEPRECATED React.isValidClass
    • πŸ—„ DEPRECATED instance.transferPropsTo
    • πŸ—„ DEPRECATED Returning false from event handlers to preventDefault
    • πŸ—„ DEPRECATED Convenience Constructor usage as function, instead wrap with React.createFactory
    • πŸ—„ DEPRECATED use of key={null} to assign implicit keys

    πŸ› Bug Fixes

    • πŸ‘ Better handling of events and updates in nested results, fixing value restoration in "layered" controlled components
    • Correctly treat event.getModifierState as case sensitive
    • πŸ‘Œ Improved normalization of event.charCode
    • πŸ‘ Better error stacks when involving autobound methods
    • βœ‚ Removed DevTools message when the DevTools are installed
    • πŸ’» Correctly detect required language features across browsers
    • πŸ›  Fixed support for some HTML attributes:
      • list updates correctly now
      • scrollLeft, scrollTop removed, these should not be specified as props
    • πŸ‘Œ Improved error messages

    React With Addons

    πŸ†• New Features

    • ⚑️ React.addons.batchedUpdates added to API for hooking into update cycle

    πŸ’₯ Breaking Changes

    • ⚑️ React.addons.update uses assign instead of copyProperties which does hasOwnProperty checks. Properties on prototypes will no longer be updated correctly.

    πŸ› Bug Fixes

    • πŸ›  Fixed some issues with CSS Transitions

    JSX

    πŸ’₯ Breaking Changes

    • Enforced convention: lower case tag names are always treated as HTML tags, upper case tag names are always treated as composite components
    • JSX no longer transforms to simple function calls

    πŸ†• New Features

    • @jsx React.DOM no longer required
    • spread ({...}) operator introduced to allow easier use of props

    πŸ› Bug Fixes

    • πŸš… JSXTransformer: Make sourcemaps an option when using APIs directly (eg, for react-rails)
  • v0.11.2 Changes

    September 16, 2014

    React Core

    πŸ†• New Features

    • βž• Added support for <dialog> element and associated open attribute
    • βž• Added support for <picture> element and associated media and sizes attributes
    • βž• Added React.createElement API in preparation for React v0.12
      • React.createDescriptor has been deprecated as a result

    JSX

    • πŸ“œ <picture> is now parsed into React.DOM.picture

    React Tools

    • ⚑️ Update esprima and jstransform for correctness fixes
    • 🚚 The jsx executable now exposes a --strip-types flag which can be used to remove TypeScript-like type annotations
      • This option is also exposed to require('react-tools').transform as stripTypes
  • v0.11.1 Changes

    July 24, 2014

    React Core

    πŸ› Bug Fixes

    • setState can be called inside componentWillMount in non-DOM environments
    • πŸ‘€ SyntheticMouseEvent.getEventModifierState correctly renamed to getModifierState
    • getModifierState correctly returns a boolean
    • getModifierState is now correctly case sensitive
    • 🚚 Empty Text node used in IE8 innerHTML workaround is now removed, fixing rerendering in certain cases

    JSX

    • πŸ›  Fix duplicate variable declaration in JSXTransformer (caused issues in some browsers)
  • v0.11.0 Changes

    July 17, 2014

    React Core

    πŸ’₯ Breaking Changes

    • 0️⃣ getDefaultProps() is now called once per class and shared across all instances
    • MyComponent() now returns a descriptor, not an instance
    • React.isValidComponent and React.PropTypes.component validate descriptors, not component instances
    • 🌲 Custom propType validators should return an Error instead of logging directly

    πŸ†• New Features

    • Rendering to null
    • Keyboard events include normalized e.key and e.getModifierState() properties
    • πŸ†• New normalized onBeforeInput event
    • React.Children.count has been added as a helper for counting the number of children

    πŸ› Bug Fixes

    • Re-renders are batched in more cases
    • Events: e.view properly normalized
    • βž• Added Support for more HTML attributes (coords, crossOrigin, download, hrefLang, mediaGroup, muted, scrolling, shape, srcSet, start, useMap)
    • πŸ‘Œ Improved SVG support
      • Changing className on a mounted SVG component now works correctly
      • Added support for elements mask and tspan
      • Added support for attributes dx, dy, fillOpacity, fontFamily, fontSize, markerEnd, markerMid, markerStart, opacity, patternContentUnits, patternUnits, preserveAspectRatio, strokeDasharray, strokeOpacity
    • πŸ›  CSS property names with vendor prefixes (Webkit, ms, Moz, O) are now handled properly
    • ⚠ Duplicate keys no longer cause a hard error; now a warning is logged (and only one of the children with the same key is shown)
    • img event listeners are now unbound properly, preventing the error "Two valid but unequal nodes with the same data-reactid"
    • βž• Added explicit warning when missing polyfills

    React With Addons

    • ⚑️ PureRenderMixin: a mixin which helps optimize "pure" components
    • 🐎 Perf: a new set of tools to help with performance analysis
    • ⚑️ Update: New $apply command to transform values
    • πŸ›  TransitionGroup bug fixes with null elements, Android

    React NPM Module

    • πŸ“¦ Now includes the pre-built packages under dist/.
    • envify is properly listed as a dependency instead of a peer dependency

    JSX

    • βž• Added support for namespaces, eg <Components.Checkbox />
    • JSXTransformer
      • Enable the same harmony features available in the command line with <script type="text/jsx;harmony=true">
      • Scripts are downloaded in parallel for more speed. They are still executed in order (as you would expect with normal script tags)
      • Fixed a bug preventing sourcemaps from working in Firefox

    React Tools Module

    • πŸ‘Œ Improved readme with usage and API information
    • πŸ‘Œ Improved ES6 transforms available with --harmony option
    • βž• Added --source-map-inline option to the jsx executable
    • πŸ†• New transformWithDetails API which gives access to the raw sourcemap data
  • v0.10.0 Changes

    March 21, 2014

    React Core

    πŸ†• New Features

    • βž• 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 for React.renderComponentToStaticMarkup
    • βž• Added support for more attributes:
      • srcSet for <img> to specify images at different pixel ratios
      • textAnchor for SVG

    πŸ› Bug Fixes

    • Ensure all void elements don’t insert a closing tag into the markup.
    • Ensure className={false} behaves consistently
    • Ensure this.refs is defined, even if no refs are specified.

    βž• Addons

    • ⚑️ update function to deal with immutable data. Read the docs

    react-tools

    • βž• Added an option argument to transform function. The only option supported is harmony, which behaves the same as jsx --harmony on the command line. This uses the ES6 transforms from jstransform.
  • v0.9.0 Changes

    February 20, 2014

    React Core

    πŸ’₯ Breaking Changes

    • ⚑️ The lifecycle methods componentDidMount and componentDidUpdate no longer receive the root node as a parameter; use this.getDOMNode() instead
    • 0️⃣ Whenever a prop is equal to undefined, the default value returned by getDefaultProps will now be used instead
    • πŸš€ React.unmountAndReleaseReactRootNode was previously deprecated and has now been removed
    • πŸ”€ React.renderComponentToString is 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, deltaY is 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, and textarea elements, .getValue() is no longer supported; use .getDOMNode().value instead
    • this.context on 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:
      • crossOrigin for CORS requests
      • download and hrefLang for <a> tags
      • mediaGroup and muted for <audio> and <video> tags
      • noValidate and formNoValidate for forms
      • property for Open Graph <meta> tags
      • sandbox, seamless, and srcDoc for <iframe> tags
      • scope for screen readers
      • span for <colgroup> tags
    • βž• Added support for defining propTypes in mixins
    • βž• Added any, arrayOf, component, oneOfType, renderable, shape to React.PropTypes
    • βž• Added support for statics on component spec for static component methods
    • On all events, .currentTarget is now properly set
    • πŸ–¨ On keyboard events, .key is now polyfilled in all browsers for special (non-printable) keys
    • On clipboard events, .clipboardData is now polyfilled in IE
    • On drag events, .dragTransfer is now present
    • βž• Added support for onMouseOver and onMouseOut in addition to the existing onMouseEnter and onMouseLeave events
    • βž• Added support for onLoad and onError on <img> elements
    • βž• Added support for onReset on <form> elements
    • The autoFocus attribute is now polyfilled consistently on input, select, and textarea

    πŸ› Bug Fixes

    • React no longer adds an __owner__ property to each component's props object; passed-in props are now never mutated
    • When nesting top-level components (e.g., calling React.renderComponent within componentDidMount), 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 .type are now set properly
    • On composition events, .data is now properly normalized in IE9 and IE10
    • CSS property values no longer have px appended for the unitless properties columnCount, flex, flexGrow, flexShrink, lineClamp, order, widows
    • πŸ›  Fixed a memory leak when unmounting children with a componentWillUnmount handler
    • πŸ›  Fixed a memory leak when renderComponentToString would store event handlers
    • πŸ›  Fixed an error that could be thrown when removing form elements during a click handler
    • Boolean attributes such as disabled are rendered without a value (previously disabled="true", now simply disabled)
    • πŸ‘ key values containing . are now supported
    • 🐎 Shortened data-reactid values for performance
    • Components now always remount when the key property changes
    • 🐎 Event handlers are attached to document only when necessary, improving performance in some cases
    • ⚠ Events no longer use .returnValue in modern browsers, eliminating a warning in Chrome
    • ⚠ scrollLeft and scrollTop are 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.TestUtils was added to help write unit tests
    • React.addons.TransitionGroup was renamed to React.addons.CSSTransitionGroup
    • React.addons.TransitionGroup was added as a more general animation wrapper
    • πŸ‘― React.addons.cloneWithProps was added for cloning components and modifying their props
    • πŸ› Bug fix for adding back nodes during an exit transition for CSSTransitionGroup
    • πŸ› Bug fix for changing transitionLeave in CSSTransitionGroup
    • 🐎 Performance optimizations for CSSTransitionGroup
    • πŸ‘ On checkbox <input> elements, checkedLink is 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-tools npm package no longer includes the React core libraries; use the react package instead.
    • displayName is 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
    • πŸ’» JSXTransformer now uses source maps automatically in modern browsers
    • πŸ“œ JSXTransformer error messages now include the filename and problematic line contents when a file fails to parse