[ ] React v16.0 |
React. React.
React v16.0! , , (error boundaries), , DOM-, , .
render
- . , , :
render() {
// !
return [
// :)
,
,
,
];
}
, , , .
:
render() {
return ', , !';
}
, , . React 16 . -, lifecycle-, . . , .
, error boundaries. , UI. try-catch , React-.
DOM-, .
render() {
// React . domNode.
// domNode - DOM-,
// DOM-.
return ReactDOM.createPortal(
this.props.children,
domNode,
);
}
React 16 , . , . , process.env
( , , process.env
Node !), React .
, SSR React 16. , React 16 3 , React 15. React 15 c process.env
2.4 Node 4, 3- Node 6 3.8 Node 8.4. React 15 ( process.env
), React 16 Node! ( , , ).
, React 16 HTML, . , . DOM. ! , ( ).
HTML SVG , React DOM. , .
, React 16 , React 15.6.1!
react
5.3 kb (2.2 kb gzipped), 20.7 kb (6.9 kb gzipped) .react-dom
103.7 kb (32.6 kb gzipped), 141 kb (42.9 kb gzipped) .react
+ react-dom
109 kb (34.8 kb gzipped), 161.7 kb (49.8 kb gzipped) .32% (30% gzip-).
. React Rollup "" (- "scope hoisting", Rollup, Webpack ) , . , React , , , . Webpack, Browserify, UMD- .
, React 16 MIT . , , React 15.6.2 MIT.
React 16 React, , Fiber. Facebook. (: React!)
Fiber React 16, error boundaries . , React.
, , . , React .
Ever wonder what "async rendering" means? Here's a demo of how to coordinate an async React tree with non-React work https://t.co/3snoahB3uV pic.twitter.com/egQ988gBjR
Andrew Clark (@acdlite) September 18, 2017
, , React . v16.0 , - , . !
React v16.0.0 npm .
React 16 Yarn:
yarn add react@^16.0.0 react-dom@^16.0.0
React 16 npm:
npm install --save react@^16.0.0 react-dom@^16.0.0
UMD-, CDN:
React 16 , React. React 16 Facebook Messenger.com , - , . , 16- , 15.6 - .
API. HTML ReactDOM.hydrate
ReactDOM.render
. ReactDOM.render
, .
, React Addons. , (react-addons-perf
; . ) , .
react-addons-perf
React 16. . .
React 16 . .
unstable_handleError
. componentDidCatch
. codemod API.ReactDOM.render
ReactDOM.unstable_renderIntoContainer
null, lifecycle-. .setState
:setState
null . .setState
, . , setState .setState
' ( ) componentDidMount
/ componentDidUpdate
, .
, B.componentWillMount
A.componentWillUnmount
. A.componentWillUnmount
.ReactDOM.unmountComponentAtNode
. .componentDidUpdate
prevContext
. (.#8631)componentDidUpdate
, .. DOM . componentDidMount
( ).unstable_batchedUpdates
.react/lib/*
react-dom/lib/*
. CommonJS , React ReactDOM (flat bundles). React' , , .react-with-addons.js
. npm , .React.createClass
create-react-class
, React.PropTypes
prop-types
, React.DOM
react-dom-factories
, react-addons-test-utils
react-dom/test-utils
, shallow react-test-renderer/shallow
. . 15.5.0 15.6.0 .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
React 16 Map Set. , (. IE < 11), , core-js babel-polyfill.
React 16 core-js - :
import 'core-js/es6/map';
import 'core-js/es6/set';
import React from 'react';
import ReactDOM from 'react-dom';
ReactDOM.render(
Hello, world!
,
document.getElementById('root')
);
React requestAnimationFrame
( ). :
global.requestAnimationFrame = function(callback) {
setTimeout(callback, 0);
};
, - (open source contributors). , , -, , .
, : Brandon Dail, Jason Quense, Nathan Hunzaker, Sasha Aickin.