-

   rss_rss_hh_new

 - e-mail

 

 -

 LiveInternet.ru:
: 17.03.2011
:
:
: 51

:


[ ] React v16.0

, 28 2017 . 16:42 +
dagen 16:42

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-.


    React 16.



    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. ! , ( ).


    ReactDOMServer.


    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- .


    MIT


    , 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. , (react-addons-perf; . ) , .


    .


    react-addons-perf React 16. . .



    React 16 . .


    • React 15 error boundaries 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 .
    • . , DOM.
    • , React. , . . ReactDOM.unmountComponentAtNode. .
    • Lifecycle- componentDidUpdate prevContext. (.#8631)
    • Shallow componentDidUpdate, .. DOM . componentDidMount ( ).
    • Shallow unstable_batchedUpdates.


    • react/lib/* react-dom/lib/*. CommonJS , React ReactDOM (flat bundles). React' , , .
    • react-with-addons.js. npm , .
    • , 15.x, . 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

    JavaScript-:


    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.

    Original source: habrahabr.ru (comments, light).

    https://habrahabr.ru/post/338932/

    :  

    : [1] []
     

    :
    : 

    : ( )

    :

      URL