react

The library for web and native user interfaces.

MIT License

Downloads
968.6M
Stars
221.3K
Committers
1.8K

Bot releases are visible (Hide)

react - v16.3.0

Published by gaearon over 6 years ago

16.3.0 (March 29, 2018)

React

  • Add a new officially supported context API. (@acdlite in #11818)
  • Add a new React.createRef() API as an ergonomic alternative to callback refs. (@trueadm in #12162)
  • Add a new React.forwardRef() API to let components forward their refs to a child. (@bvaughn in #12346)
  • Fix a false positive warning in IE11 when using React.Fragment. (@XaveScor in #11823)
  • Replace React.unstable_AsyncComponent with React.unstable_AsyncMode. (@acdlite in #12117)
  • Improve the error message when calling setState() on an unmounted component. (@sophiebits in #12347)

React DOM

  • Add a new getDerivedStateFromProps() lifecycle and UNSAFE_ aliases for the legacy lifecycles. (@bvaughn in #12028)
  • Add a new getSnapshotBeforeUpdate() lifecycle. (@bvaughn in #12404)
  • Add a new <React.StrictMode> wrapper to help prepare apps for async rendering. (@bvaughn in #12083)
  • Add support for onLoad and onError events on the <link> tag. (@roderickhsiao in #11825)
  • Add support for noModule boolean attribute on the <script> tag. (@aweary in #11900)
  • Fix minor DOM input bugs in IE and Safari. (@nhunzaker in #11534)
  • Correctly detect Ctrl + Enter in onKeyPress in more browsers. (@nstraub in #10514)
  • Fix containing elements getting focused on SSR markup mismatch. (@koba04 in #11737)
  • Fix value and defaultValue to ignore Symbol values. (@nhunzaker in #11741)
  • Fix refs to class components not getting cleaned up when the attribute is removed. (@bvaughn in #12178)
  • Fix an IE/Edge issue when rendering inputs into a different window. (@M-ZubairAhmed in #11870)
  • Throw with a meaningful message if the component runs after jsdom has been destroyed. (@gaearon in #11677)
  • Don't crash if there is a global variable called opera with a null value. @alisherdavronov in #11854)
  • Don't check for old versions of Opera. (@skiritsis in #11921)
  • Deduplicate warning messages about <option selected>. (@watadarkstar in #11821)
  • Deduplicate warning messages about invalid callback. (@yenshih in #11833)
  • Deprecate ReactDOM.unstable_createPortal() in favor of ReactDOM.createPortal(). (@prometheansacrifice in #11747)
  • Don't emit User Timing entries for context types. (@abhaynikam in #12250)
  • Improve the error message when context consumer child isn't a function. (@raunofreiberg in #12267)
  • Improve the error message when adding a ref to a functional component. (@skiritsis in #11782)

React DOM Server

  • Prevent an infinite loop when attempting to render portals with SSR. (@gaearon in #11709)
  • Warn if a class doesn't extend React.Component. (@wyze in #11993)
  • Fix an issue with this.state of different components getting mixed up. (@sophiebits in #12323)
  • Provide a better message when component type is undefined. (@HeroProtagonist in #11966)

React Test Renderer

  • Fix handling of fragments in toTree(). (@maciej-ka in #12107 and @gaearon in #12154)
  • Shallow renderer should assign state to null for components that don't set it. (@jwbay in #11965)
  • Shallow renderer should filter legacy context according to contextTypes. (@koba04 in #11922)
  • Add an unstable API for testing asynchronous rendering. (@acdlite in #12478)

React Is (New)

  • First release of the new package that libraries can use to detect different React node types. (@bvaughn in #12199)
  • Add ReactIs.isValidElementType() to help higher-order components validate their inputs. (@jamesreggio in #12483)

React Lifecycles Compat (New)

Create Subscription (New)

React Reconciler (Experimental)

  • Expose react-reconciler/persistent for building renderers that use persistent data structures. (@gaearon in #12156)
  • Pass host context to finalizeInitialChildren(). (@jquense in #11970)
  • Remove useSyncScheduling from the host config. (@acdlite in #11771)

React Call Return (Experimental)

react - v16.2.0

Published by clemmy almost 7 years ago

React

  • Add Fragment as named export to React. (@clemmy in #10783)
  • Support experimental Call/Return types in React.Children utilities. (@MatteoVH in #11422)

React DOM

  • Fix radio buttons not getting checked when using multiple lists of radios. (@landvibe in #11227)
  • Fix radio buttons not receiving the onChange event in some cases. (@jquense in #11028)

React Test Renderer

  • Fix setState() callback firing too early when called from componentWillMount. (@accordeiro in #11507)

React Reconciler

  • Expose react-reconciler/reflection with utilities useful to custom renderers. (@rivenhk in #11683)

Internal Changes

react - v15.6.2

Published by nhunzaker almost 7 years ago

15.6.2 (September 25, 2017)

All Packages

  • Switch from BSD + Patents to MIT license

React DOM

  • Fix a bug where modifying document.documentMode would trigger IE detection in other browsers, breaking change events. (@aweary in #10032)
  • CSS Columns are treated as unitless numbers. (@aweary in #10115)
  • Fix bug in QtWebKit when wrapping synthetic events in proxies. (@walrusfruitcake in #10115)
  • Prevent event handlers from receiving extra argument in development. (@aweary in #10115)
  • Fix cases where onChange would not fire with defaultChecked on radio inputs. (@jquense in #10156)
  • Add support for controlList attribute to DOM property whitelist (@nhunzaker in #9940)
  • Fix a bug where creating an element with a ref in a constructor did not throw an error in development. (@iansu in #10025)
react - v16.1.1

Published by gaearon almost 7 years ago

16.1.1 (November 13, 2017)

React

  • Improve the warning about undefined component type. (@selbekk in #11505)

React DOM

React DOM Server

  • Don't freeze the ReactDOMServer public API. (@travi in #11531)
  • Don't emit autoFocus={false} attribute on the server. (@gaearon in #11543)

React Reconciler

react - v16.1.0

Published by gaearon almost 7 years ago

16.1.0 (November 9, 2017)

Discontinuing Bower Releases

Starting with 16.1.0, we will no longer be publishing new releases on Bower. You can continue using Bower for old releases, or point your Bower configs to the React UMD builds hosted on unpkg that mirror npm releases and will continue to be updated.

All Packages

  • Fix an accidental extra global variable in the UMD builds. (@gaearon in #10935)

React

  • Add support for portals in React.Children utilities. (@MatteoVH in #11378)
  • Warn when a class has a render method but doesn't extend a known base class. (@sw-yx in #11168)
  • Improve the warning when accidentally returning an object from constructor. (@deanbrophy in #11395)

React DOM

React DOM Server

  • Add a new suppressHydrationWarning attribute for intentional client/server text mismatches. (@sebmarkbage in #11126)
  • Fix markup generation when components return strings. (@gaearon in #11109)
  • Fix obscure error message when passing an invalid style value. (@iamdustan in #11173)
  • Include the autoFocus attribute into SSR markup. (@gaearon in #11192)
  • Include the component stack into more warnings. (@gaearon in #11284)

React Test Renderer and Test Utils

  • Fix multiple setState() calls in componentWillMount() in shallow renderer. (@Hypnosphi in #11167)
  • Fix shallow renderer to ignore shouldComponentUpdate() after forceUpdate(). (@d4rky-pl in #11239 and #11439)
  • Handle forceUpdate() and React.PureComponent correctly. (@koba04 in #11440)
  • Add back support for running in production mode. (@gaearon in #11112)
  • Add a missing package.json dependency. (@gaearon in #11340)

React ART

  • Add a missing package.json dependency. (@gaearon in #11341)
  • Expose react-art/Circle, react-art/Rectangle, and react-art/Wedge. (@gaearon in #11343)

React Reconciler (Experimental)

React Call Return (Experimental)

react - v16.0.0

Published by acdlite about 7 years ago

16.0.0 (September 26, 2017)

Learn more in the React 16.0 announcement post!


New JS Environment Requirements

New Features

  • Components can now return arrays and strings from render. (Docs coming soon!)
  • Improved error handling with introduction of "error boundaries". Error boundaries are React components that catch JavaScript errors anywhere in their child component tree, log those errors, and display a fallback UI instead of the component tree that crashed.
  • First-class support for declaratively rendering a subtree into another DOM node with ReactDOM.createPortal(). (Docs coming soon!)
  • Streaming mode for server side rendering is enabled with ReactDOMServer.renderToNodeStream() and ReactDOMServer.renderToStaticNodeStream(). (@aickin in #10425, #10044, #10039, #10024, #9264, and others.)
  • React DOM now allows passing non-standard attributes. (@nhunzaker in #10385, 10564, #10495 and others)

Breaking Changes

  • There are several changes to the behavior of scheduling and lifecycle methods:
    • ReactDOM.render() and ReactDOM.unstable_renderIntoContainer() now return null if called from inside a lifecycle method.
    • Minor changes to setState behavior:
      • Calling setState with null no longer triggers an update. This allows you to decide in an updater function if you want to re-render.
      • Calling setState directly in render always causes an update. This was not previously the case. Regardless, you should not be calling setState from render.
      • setState callback (second argument) now fires immediately after componentDidMount / componentDidUpdate instead of after all components have rendered.
    • When replacing <A /> with <B />, B.componentWillMount now always happens before A.componentWillUnmount. Previously, A.componentWillUnmount could fire first in some cases.
    • Previously, changing the ref to a component would always detach the ref before that component's render is called. Now, we change the ref later, when applying the changes to the DOM.
    • It is not safe to re-render into a container that was modified by something other than React. This worked previously in some cases but was never supported. We now emit a warning in this case. Instead you should clean up your component trees using ReactDOM.unmountComponentAtNode. See this example.
    • componentDidUpdate lifecycle no longer receives prevContext param. (@bvaughn in #8631)
    • Non-unique keys may now cause children to be duplicated and/or omitted. Using non-unique keys is not (and has never been) supported, but previously it was a hard error.
    • Shallow renderer no longer calls componentDidUpdate() because DOM refs are not available. This also makes it consistent with componentDidMount() (which does not get called in previous versions either).
    • Shallow renderer does not implement unstable_batchedUpdates() anymore.
    • ReactDOM.unstable_batchedUpdates now only takes one extra argument after the callback.
  • The names and paths to the single-file browser builds have changed to emphasize the difference between development and production builds. For example:
    • react/dist/react.jsreact/umd/react.development.js
    • react/dist/react.min.jsreact/umd/react.production.min.js
    • react-dom/dist/react-dom.jsreact-dom/umd/react-dom.development.js
    • react-dom/dist/react-dom.min.jsreact-dom/umd/react-dom.production.min.js
  • The server renderer has been completely rewritten, with some improvements:
    • Server rendering does not use markup validation anymore, and instead tries its best to attach to existing DOM, warning about inconsistencies. It also doesn't use comments for empty components and data-reactid attributes on each node anymore.
    • Hydrating a server rendered container now has an explicit API. Use ReactDOM.hydrate instead of ReactDOM.render if you're reviving server rendered HTML. Keep using ReactDOM.render if you're just doing client-side rendering.
  • When "unknown" props are passed to DOM components, for valid values, React will now render them in the DOM. See this post for more details. (@nhunzaker in #10385, 10564, #10495 and others)
  • Errors in the render and lifecycle methods now unmount the component tree by default. To prevent this, add error boundaries to the appropriate places in the UI.

Removed Deprecations

  • There is no react-with-addons.js build anymore. All compatible addons are published separately on npm, and have single-file browser versions if you need them.
  • The deprecations introduced in 15.x have been removed from the core package. React.createClass is now available as create-react-class, React.PropTypes as prop-types, React.DOM as react-dom-factories, react-addons-test-utils as react-dom/test-utils, and shallow renderer as react-test-renderer/shallow. See 15.5.0 and 15.6.0 blog posts for instructions on migrating code and automated codemods.
react - v15.6.1

Published by gaearon over 7 years ago

15.6.1 (June 14, 2017)

React DOM

react - v15.6.0

Published by flarnie over 7 years ago

15.6.0 (June 13, 2017)

React

  • Downgrade deprecation warnings to use console.warn instead of console.error. (@flarnie in #9753)
  • Add a deprecation warning for React.createClass. Points users to create-react-class instead. (@flarnie in #9771)
  • Add deprecation warnings and separate module for React.DOM factory helpers. (@nhunzaker in #8356)
  • Warn for deprecation of React.createMixin helper, which was never used. (@aweary in #8853)

React DOM

  • Add support for CSS variables in style attribute. (@aweary in #9302)
  • Add support for CSS Grid style properties. (@ericsakmar in #9185)
  • Fix bug where inputs mutated value on type conversion. (@nhunzaker in #9806)
  • Fix issues with onChange not firing properly for some inputs. (@jquense in #8575)
  • Fix bug where controlled number input mistakenly allowed period. (@nhunzaker in #9584)
  • Fix bug where performance entries were being cleared. (@chrisui in #9451)

React Addons

  • Fix AMD support for addons depending on react. (@flarnie in #9919)
  • Fix isMounted() to return true in componentWillUnmount. (@mridgway in #9638)
  • Fix react-addons-update to not depend on native Object.assign. (@gaearon in #9937)
  • Remove broken Google Closure Compiler annotation from create-react-class. (@gaearon in #9933)
  • Remove unnecessary dependency from react-linked-input. (@gaearon in #9766)
  • Point react-addons-(css-)transition-group to the new package. (@gaearon in #9937)
react - v15.5.4

Published by flarnie over 7 years ago

15.5.4 (April 11, 2017)

React Addons

  • Critical Bugfix: Update the version of prop-types to fix critical bug. (@gaearon in 545c87f)
  • Fix react-addons-create-fragment package to include loose-envify transform for Browserify users. (@mridgway in #9642)

React Test Renderer

  • Fix compatibility with Enzyme by exposing batchedUpdates on shallow renderer. (@gaearon in #9382)
react - v15.5.3

Published by flarnie over 7 years ago

15.5.3 (April 7, 2017)

Note: this release has a critical issue and was deprecated. Please update to 15.5.4 or higher.

React Addons

  • Fix react-addons-create-fragment package to export correct thing. (@gaearon in #9385)
  • Fix create-react-class package to include loose-envify transform for Browserify users. (@mridgway in #9642)
react - v15.5.2

Published by flarnie over 7 years ago

15.5.2 (April 7, 2017)

Note: this release has a critical issue and was deprecated. Please update to 15.5.4 or higher.

React Addons

  • Fix the production single-file builds to not include the development code. (@gaearon in #9385)
  • Apply better minification to production single-file builds. (@gaearon in #9385)
  • Add missing and remove unnecessary dependencies to packages. (@gaearon in #9385)
react - v15.5.1

Published by flarnie over 7 years ago

15.5.1 (April 7, 2017)

Note: this release has a critical issue and was deprecated. Please update to 15.5.4 or higher.

React

react - v15.5.0

Published by acdlite over 7 years ago

15.5.0 (April 7, 2017)

Note: this release has a critical issue and was deprecated. Please update to 15.5.4 or higher.

React

  • Added a deprecation warning for React.createClass. Points users to create-react-class instead. (@acdlite in d9a4fa4)
  • Added a deprecation warning for React.PropTypes. Points users to prop-types instead. (@acdlite in 043845c)
  • Fixed an issue when using ReactDOM together with ReactDOMServer. (@wacii in #9005)
  • Fixed issue with Closure Compiler. (@anmonteiro in #8895)
  • Another fix for Closure Compiler. (@Shastel in #8882)
  • Added component stack info to invalid element type warning. (@n3tr in #8495)

React DOM

  • Fixed Chrome bug when backspacing in number inputs. (@nhunzaker in #7359)
  • Added react-dom/test-utils, which exports the React Test Utils. (@bvaughn)

React Test Renderer

  • Fixed bug where componentWillUnmount was not called for children. (@gre in #8512)
  • Added react-test-renderer/shallow, which exports the shallow renderer. (@bvaughn)

React Addons

  • Last release for addons; they will no longer be actively maintained.
  • Removed peerDependencies so that addons continue to work indefinitely. (@acdlite and @bvaughn in 8a06cd7 and 67a8db3)
  • Updated to remove references to React.createClass and React.PropTypes (@acdlite in 12a96b9)
  • react-addons-test-utils is deprecated. Use react-dom/test-utils and react-test-renderer/shallow instead. (@bvaughn)
react -

Published by gaearon almost 8 years ago

15.4.2 (January 6, 2017)

React

React DOM

  • Fixed a decimal point issue on uncontrolled number inputs. (@nhunzaker in #7750)
  • Fixed rendering of textarea placeholder in IE11. (@aweary in #8020)
  • Worked around a script engine bug in IE9. (@eoin in #8018)

React Addons

react - v15.4.1

Published by sophiebits almost 8 years ago

React

  • Restructure variable assignment to work around a Rollup bug (@gaearon in #8384)

React DOM

  • Fixed event handling on disabled button elements (@spicyj in #8387)
  • Fixed compatibility of browser build with AMD environments (@zpao in #8374)
react -

Published by tomocchino almost 8 years ago

React

  • React package and browser build no longer "secretly" includes React DOM. (@sebmarkbage in #7164 and #7168)
  • Required PropTypes now fail with specific messages for null and undefined. (@chenglou in #7291)
  • Improved development performance by freezing children instead of copying. (@keyanzhang in #7455)

React DOM

  • Fixed occasional test failures when React DOM is used together with shallow renderer. (@goatslacker in #8097)
  • Added a warning for invalid aria- attributes. (@jessebeach in #7744)
  • Added a warning for using autofocus rather than autoFocus. (@hkal in #7694)
  • Removed an unnecessary warning about polyfilling String.prototype.split. (@nhunzaker in #7629)
  • Clarified the warning about not calling PropTypes manually. (@jedwards1211 in #7777)
  • The unstable batchedUpdates API now passes the wrapped function's return value through. (@bgnorlov in #7444)
  • Fixed a bug with updating text in IE 8. (@mnpenner in #7832)

React Perf

  • When ReactPerf is started, you can now view the relative time spent in components as a chart in Chrome Timeline. (@gaearon in #7549)

React Test Utils

  • If you call Simulate.click() on a <input disabled onClick={foo} /> then foo will get called whereas it didn't before. (@nhunzaker in #7642)

React Test Renderer

  • Due to packaging changes, it no longer crashes when imported together with React DOM in the same file. (@sebmarkbage in #7164 and #7168)
  • ReactTestRenderer.create() now accepts {createNodeMock: element => mock} as an optional argument so you can mock refs with snapshot testing. (@Aweary in #7649, #8261)
react -

Published by zpao about 8 years ago

React

  • Remove plain object warning from React.createElement & React.cloneElement. (@spudly in #7724)

React DOM

  • Add playsInline to supported HTML attributes. (@reaperhulk in #7519)
  • Add as to supported HTML attributes. (@kevinslin in #7582)
  • Improve DOM nesting validation warning about whitespace. (@spicyj in #7515)
  • Avoid "Member not found" exception in IE10 when calling preventDefault() in Synthetic Events. (@g-palmer in #7411)
  • Fix memory leak in onSelect implementation. (@AgtLucas in #7533)
  • Improve robustness of document.documentMode checks to handle Google Tag Manager. (@SchleyB in #7594)
  • Add more cases to controlled inputs warning. (@marcin-mazurek in #7544)
  • Handle case of popup blockers overriding document.createEvent. (@Andarist in #7621)
  • Fix issue with dangerouslySetInnerHTML and SVG in Internet Explorer. (@zpao in #7618)
  • Improve handling of Japanese IME on Internet Explorer. (@msmania in #7107)

React Test Renderer

React Perf Add-on

  • Ensure lifecycle timers are stopped on errors. (@gaearon in #7548)
react -

Published by zpao about 8 years ago

React

React DOM

  • Avoid <input> validation warning from browsers when changing type. (@nhunzaker in #7333)
  • Avoid "Member not found" exception in IE10 when calling stopPropagation() in Synthetic Events. (@nhunzaker in #7343)
  • Fix issue resulting in inability to update some <input> elements in mobile browsers. (@keyanzhang in #7397)
  • Fix memory leak in server rendering. (@keyanzhang in #7410)
  • Fix issue resulting in <input type="range"> values not updating when changing min or max. (@troydemonbreun in #7486)
  • Add new warning for rare case of attempting to unmount a container owned by a different copy of React. (@ventuno in #7456)

React Test Renderer

  • Fix ReactTestInstance::toJSON() with empty top-level components. (@Morhaus in #7523)

React Native Renderer

  • Change trackedTouchCount invariant into a console.error for better reliability. (@yungsters in #7400)
react -

Published by zpao about 8 years ago

React

  • Add React.PureComponent - a new base class to extend, replacing react-addons-pure-render-mixin now that mixins don't work with ES2015 classes. (@spicyj in #7195)
  • Add new warning when modifying this.props.children. (@jimfb in #7001)
  • Fixed issue with ref resolution order. (@gaearon in #7101)
  • Warn when mixin is undefined. (@swaroopsm in #6158)
  • Downgrade "unexpected batch number" invariant to a warning. (@spicyj in #7133)
  • Validate arguments to oneOf and oneOfType PropTypes sooner. (@troydemonbreun in #6316)
  • Warn when calling PropTypes directly. (@Aweary in #7132, #7194)
  • Improve warning when using Maps as children. (@keyanzhang in #7260)
  • Add additional type information to the PropTypes.element warning. (@alexzherdev in #7319)
  • Improve component identification in no-op setState warning. (@keyanzhang in #7326)

React DOM

  • Fix issue with nested server rendering. (@Aweary in #7033)
  • Add xmlns, xmlnsXlink to supported SVG attributes. (@salzhrani in #6471)
  • Add referrerPolicy to supported HTML attributes. (@Aweary in #7274)
  • Fix issue resulting in <input type="range"> initial value being rounded. (@troydemonbreun in #7251)

React Test Renderer

React Perf Add-on

  • Fix issue resulting in excessive warnings when encountering an internal measurement error. (@sassanh in #7299)

React TestUtils Add-on

  • Implement type property on for events created via TestUtils.Simulate.*. (@yaycmyk in #6154)
  • Fix crash when running TestUtils with the production build of React. (@gaearon in #7246)
react -

Published by zpao over 8 years ago

React

  • Fix errant warning about missing React element. (@gaearon in #7193)
  • Better removal of dev-only code, leading to a small reduction in the minified production bundle size. (@gaearon in #7188, #7189)

React DOM

  • Add stack trace to null input value warning. (@jimfb in #7040)
  • Fix webcomponents example. (@jalexanderfox in #7057)
  • Fix unstable_renderSubtreeIntoContainer so that context properly updates when linked to state. (@gaearon in #7125)
  • Improve invariant wording for void elements. (@starkch in #7066)
  • Ensure no errors are thrown due to event handlers in server rendering. (@rricard in #7127)
  • Fix regression resulting in value-less submit and reset inputs removing the browser-default text. (@zpao in #7197)
  • Fix regression resulting in empty name attribute being added to inputs when not provided. (@okonet in #7199)
  • Fix issue with nested server rendering. (@Aweary in #7033)

React Perf Add-on

  • Make ReactPerf.start() work properly during lifecycle methods. (@gaearon in #7208).

React CSSTransitionGroup Add-on

  • Fix issue resulting in spurious unknown property warnings. (@batusai513 in #7165)

React Native Renderer

  • Improve error handling in cross-platform touch event handling. (@yungsters in #7143)