React: рдПрдХ рдмрд╛рд░ рдореЗрдВ рдХрдВрдкреЛрдиреЗрдВрдЯрдбрд┐рдбрдорд╛рдЙрдВрдЯ рдореЗрдВ рддрддреНрд╡ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВ рддреНрд░реБрдЯрд┐: рдирд▓ рдХреА рд╕рдВрдкрддреНрддрд┐ 'рд░реВрдЯрдЖрдИрдбреА' рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддрд╛ред

рдХреЛ рдирд┐рд░реНрдорд┐рдд 10 рдордИ 2016  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: facebook/react

рдореИрдВ рдШрдЯрдХрдбрд┐рдбрдорд╛рдЙрдВрдЯ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ ReactDOM.render #container element(top-level) рдХрд░рддрд╛ рд╣реВрдВ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореБрдЭреЗ рдХреБрдЫ рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рддреА рд╣реИ, null рдХреА рд╕рдВрдкрддреНрддрд┐ 'rootID' рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддреА рд╣реИ ред
рдЕрдЧрд░ рдореИрдВ рд╕реЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ рд░рди ReactDOM.render рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред (0ms рдХреЗ рдмрд╛рдж рднреА)
рдореИрдВ рдЕрдирд┐рд╢реНрдЪрд┐рдд рдорд╣рд╕реВрд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдХреНрдпрд╛ рдХреЛрдИ рдореЗрд░реА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдПрдЪрдЯреАрдПрдордПрд▓:

<!DOCTYPE html>
<html>
<head>
    <title>React</title>
</head>
<body>
    <div id="container"></div>
    <script type="text/javascript" src="script/lib/react.js"></script>
    <script type="text/javascript" src="script/lib/react-dom.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.min.js"></script>
    <script type="text/javascript" src="script/bundle.js"></script>
</body>
</html>

рдП.рдЬреЗрдПрд╕рдПрдХреНрд╕ рдФрд░ рдмреА.рдЬреЗрдПрд╕рдПрдХреНрд╕:

var A = React.createClass({
    componentDidMount: function(){
        ReactDOM.render(
            <B />,
            document.getElementById('container')
        );
    },
    render: function(){
        return (
            <div>Hello World, I'm A.</div>
        )
    }
});

var B = React.createClass({
    render: function(){
        return (
            <div>Hello World, I'm B.</div>
        )
    }
});

рдРрдк.рдЬреЗрдПрд╕рдПрдХреНрд╕:

ReactDOM.render(
    <A />,
    document.getElementById('container')
);

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЕрд╕рд▓реА рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЬреАрд╡рдирдЪрдХреНрд░ рдкрджреНрдзрддрд┐ рдХреЗ рднреАрддрд░ рд╕реЗ ReactDOM.render рдХреНрдпреЛрдВ рдХреЙрд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдЖрдк рдЙрд╕ рдиреЛрдб рдкрд░ рдПрдХ рдирдпрд╛ рдШрдЯрдХ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕ рдкрд░ рд╡рд░реНрддрдорд╛рди рдШрдЯрдХ рдЖрд░реЛрд╣рд┐рдд рд╣реИ, рдЬреЛ рдПрдХ рд╡рд┐рд░реЛрдзреА рдкреИрдЯрд░реНрди рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

рд░реВрдЯ рдкрд░ рдлрд┐рд░ рд╕реЗ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рдХреМрди рд╕рд╛ рдШрдЯрдХ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд░реВрдЯ рдкреИрд░реЗрдВрдЯ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЬрдбрд╝реЗрдВ рд╣реИрдВ (рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП) рддреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рд╕рд╣рд╛рдпрдХ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

https://facebook.github.io/react/blog/2015/10/01/react-render-and-top-level-api.html#helpers

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХрд╛рдзрд┐рдХ рд░рд┐рдПрдХреНрдЯ рд░реВрдЯ рд╣реИрдВ, рдпрд╛ рдПрдХ рд░реВрдЯ рдЬреЛ рд╕рдордп рдХреЗ рд╕рд╛рде рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рд╣рдореЗрд╢рд╛ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рд░реИрдкрд░ рдПрдкреАрдЖрдИ рдмрдирд╛рдПрдВред рдЖрдкрдХрд╛ рдмрд╛рд╣рд░реА рд╕рд┐рд╕реНрдЯрдо рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдпреЗ рд╕рднреА рдереЛрдбрд╝реЗ рдЕрд▓рдЧ рджрд┐рдЦреЗрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлреЗрд╕рдмреБрдХ рдкрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд┐рд╕реНрдЯрдо рд╣реИ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдирдорд╛рдЙрдВрдЯ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯрдПрдЯрдиреЛрдб рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкреЗрдЬ рдЯреНрд░рд╛рдВрдЬрд┐рд╢рди рд░рд╛рдЙрдЯрд░ рдореЗрдВ рдЬреБрдбрд╝ рдЬрд╛рддрд╛ рд╣реИред

ReactDOM.render() рдХреЛ рд╕реАрдзреЗ рд╣рд░ рдЬрдЧрд╣ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓рд┐рдЦрдиреЗ/рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рднреАрддрд░ рдорд╛рдЙрдВрдЯрд┐рдВрдЧ рдФрд░ рдЕрдирдорд╛рдЙрдВрдЯрд┐рдВрдЧ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░реЗрдЧрд╛ред

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХреЛ jsfiddle рдореЗрдВ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? https://jsfiddle.net/L3zn8dws/

рдЕрд╕рд▓реА рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЬреАрд╡рдирдЪрдХреНрд░ рдкрджреНрдзрддрд┐ рдХреЗ рднреАрддрд░ рд╕реЗ ReactDOM.render рдХреНрдпреЛрдВ рдХреЙрд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдЖрдк рдЙрд╕ рдиреЛрдб рдкрд░ рдПрдХ рдирдпрд╛ рдШрдЯрдХ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕ рдкрд░ рд╡рд░реНрддрдорд╛рди рдШрдЯрдХ рдЖрд░реЛрд╣рд┐рдд рд╣реИ, рдЬреЛ рдПрдХ рд╡рд┐рд░реЛрдзреА рдкреИрдЯрд░реНрди рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

рд░реВрдЯ рдкрд░ рдлрд┐рд░ рд╕реЗ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рдХреМрди рд╕рд╛ рдШрдЯрдХ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд░реВрдЯ рдкреИрд░реЗрдВрдЯ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЬрдбрд╝реЗрдВ рд╣реИрдВ (рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП) рддреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рд╕рд╣рд╛рдпрдХ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:

https://facebook.github.io/react/blog/2015/10/01/react-render-and-top-level-api.html#helpers

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХрд╛рдзрд┐рдХ рд░рд┐рдПрдХреНрдЯ рд░реВрдЯ рд╣реИрдВ, рдпрд╛ рдПрдХ рд░реВрдЯ рдЬреЛ рд╕рдордп рдХреЗ рд╕рд╛рде рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рд╣рдореЗрд╢рд╛ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рд░реИрдкрд░ рдПрдкреАрдЖрдИ рдмрдирд╛рдПрдВред рдЖрдкрдХрд╛ рдмрд╛рд╣рд░реА рд╕рд┐рд╕реНрдЯрдо рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдпреЗ рд╕рднреА рдереЛрдбрд╝реЗ рдЕрд▓рдЧ рджрд┐рдЦреЗрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлреЗрд╕рдмреБрдХ рдкрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд┐рд╕реНрдЯрдо рд╣реИ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдирдорд╛рдЙрдВрдЯ рдХреЙрдореНрдкреЛрдиреЗрдВрдЯрдПрдЯрдиреЛрдб рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкреЗрдЬ рдЯреНрд░рд╛рдВрдЬрд┐рд╢рди рд░рд╛рдЙрдЯрд░ рдореЗрдВ рдЬреБрдбрд╝ рдЬрд╛рддрд╛ рд╣реИред

ReactDOM.render() рдХреЛ рд╕реАрдзреЗ рд╣рд░ рдЬрдЧрд╣ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓рд┐рдЦрдиреЗ/рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рднреАрддрд░ рдорд╛рдЙрдВрдЯрд┐рдВрдЧ рдФрд░ рдЕрдирдорд╛рдЙрдВрдЯрд┐рдВрдЧ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░реЗрдЧрд╛ред

рдпрд╣ рдПрдХ рдЕрд╕рдорд░реНрдерд┐рдд рдкреИрдЯрд░реНрди рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ: рдЖрдк рдХрд┐рд╕реА рдРрд╕реЗ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдХреБрдЫ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЕрдиреНрдп рдШрдЯрдХ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЬреАрд╡рдирдЪрдХреНрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдпрджрд┐ рдЖрдк B рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ <B /> рдХреЛ A рдХреЗ рд░реЗрдВрдбрд░ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

bloodyowl picture bloodyowl  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

MoOx picture MoOx  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

vignestion picture vignestion  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jimfb picture jimfb  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kocokolo picture kocokolo  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ