babel-plugin-transform-hoist-nested-functions
babel-plugin-transform-hoist-nested-functions copied to clipboard
Update react-dom to the latest version 🚀
Version 16.0.0 of react-dom just got published.
Dependency | react-dom |
---|---|
Current Version | 15.6.2 |
Type | devDependency |
The version 16.0.0 is not covered by your current version range.
Without accepting this pull request your project will work just like it did before. There might be a bunch of new features, fixes and perf improvements that the maintainers worked on for you though.
I recommend you look into these changes and try to get onto the latest version of react-dom. Given that you have a decent test suite, a passing build is a strong indicator that you can take advantage of these changes by merging the proposed change into your project. Otherwise this branch is a great starting point for you to work on the update.
Release Notes
v16.0.016.0.0 (September 26, 2017)
Learn more in the React 16.0 announcement post!
New JS Environment Requirements
- React 16 depends on the collection types Map and Set, as well as requestAnimationFrame. If you support older browsers and devices which may not yet provide these natively (e.g. <IE11), you may want to include a polyfill.
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()
andReactDOMServer.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()
andReactDOM.unstable_renderIntoContainer()
now returnnull
if called from inside a lifecycle method.- To work around this, you can either use the new portal API or refs.
- 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 callingsetState
from render. setState
callback (second argument) now fires immediately aftercomponentDidMount
/componentDidUpdate
instead of after all components have rendered.
- Calling
- When replacing
<A />
with<B />
,B.componentWillMount
now always happens beforeA.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 theref
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 receivesprevContext
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 withcomponentDidMount()
(which does not get called in previous versions either). - Shallow renderer does not implement
unstable_batchedUpdates()
anymore.
- 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.js
→react/umd/react.development.js
react/dist/react.min.js
→react/umd/react.production.min.js
react-dom/dist/react-dom.js
→react-dom/umd/react-dom.development.js
react-dom/dist/react-dom.min.js
→react-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 ofReactDOM.render
if you're reviving server rendered HTML. Keep usingReactDOM.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.
Not sure how things should work exactly?
There is a collection of frequently asked questions and of course you may always ask my humans.
Your Greenkeeper Bot :palm_tree:
Version 16.1.0 just got published.
Update to this version instead 🚀
Release Notes
v16.1.016.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
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
- Allow
on
as a custom attribute for AMP. (@nuc in #11153) - Fix
onMouseEnter
andonMouseLeave
firing on wrong elements. (@gaearon in #11164) - Fix
null
showing up in a warning instead of the component stack. (@gaearon in #10915) - Fix IE11 crash in development mode. (@leidegre in #10921)
- Fix
tabIndex
not getting applied to SVG elements. (@gaearon in #11034) - Fix SVG children not getting cleaned up on
dangerouslySetInnerHTML
in IE. (@OriR in #11108) - Fix false positive text mismatch warning caused by newline normalization. (@gaearon in #11119)
- Fix
form.reset()
to respectdefaultValue
on uncontrolled<select>
. (@aweary in #11057) - Fix
<textarea>
placeholder not rendering on IE11. (@gaearon in #11177) - Fix a crash rendering into shadow root. (@gaearon in #11037)
- Fix false positive warning about hydrating mixed case SVG tags. (@gaearon in #11174)
- Suppress the new unknown tag warning for
<dialog>
element. (@gaearon in #11035) - Warn when defining a non-existent
componentDidReceiveProps
method. (@iamtommcc in #11479) - Warn about function child no more than once. (@andreysaleba in #11120)
- Warn about nested updates no more than once. (@anushreesubramani in #11113)
- Deduplicate other warnings about updates. (@anushreesubramani in #11216)
- Include component stack into the warning about
contentEditable
andchildren
. (@Ethan-Arrowood in #11208) - Improve the warning about booleans passed to event handlers. (@NicBonetto in #11308)
- Improve the warning when a multiple
select
gets nullvalue
. (@Hendeca in #11141) - Move link in the warning message to avoid redirect. (@marciovicente in #11400)
- Add a way to suppress the React DevTools installation prompt. (@gaearon in #11448)
- Remove unused code. (@gaearon in #10802, #10803)
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 incomponentWillMount()
in shallow renderer. (@Hypnosphi in #11167) - Fix shallow renderer to ignore
shouldComponentUpdate()
afterforceUpdate()
. (@d4rky-pl in #11239 and #11439) - Handle
forceUpdate()
andReact.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
, andreact-art/Wedge
. (@gaearon in #11343)
React Reconciler (Experimental)
- First release of the new experimental package for creating custom renderers. (@iamdustan in #10758)
- Add support for React DevTools. (@gaearon in #11463)
React Call Return (Experimental)
- First release of the new experimental package for parent-child communication. (@gaearon in #11364)
Version 16.1.1 just got published.
Update to this version instead 🚀
Release Notes
v16.1.116.1.1 (November 13, 2017)
React
React DOM
- Support string values for the
capture
attribute. (@maxschmeling in #11424)
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
- Change the hydration API for better Flow typing. (@sebmarkbage in #11493)
Version 16.2.0 just got published.
Update to this version instead 🚀
Release Notes
v16.2.0React
- 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 fromcomponentWillMount
. (@accordeiro in #11507)
React Reconciler
Internal Changes
- Many tests were rewritten against the public API. Big thanks to everyone who contributed!