рдореИрдВ рдШрдЯрдХрдбрд┐рдбрдорд╛рдЙрдВрдЯ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ 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')
);
рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХреЛ 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
рдХреЗ рд░реЗрдВрдбрд░ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЕрд╕рд▓реА рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЬреАрд╡рдирдЪрдХреНрд░ рдкрджреНрдзрддрд┐ рдХреЗ рднреАрддрд░ рд╕реЗ
ReactDOM.render
рдХреНрдпреЛрдВ рдХреЙрд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдЖрдк рдЙрд╕ рдиреЛрдб рдкрд░ рдПрдХ рдирдпрд╛ рдШрдЯрдХ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕ рдкрд░ рд╡рд░реНрддрдорд╛рди рдШрдЯрдХ рдЖрд░реЛрд╣рд┐рдд рд╣реИ, рдЬреЛ рдПрдХ рд╡рд┐рд░реЛрдзреА рдкреИрдЯрд░реНрди рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИредрд░реВрдЯ рдкрд░ рдлрд┐рд░ рд╕реЗ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рдХреМрди рд╕рд╛ рдШрдЯрдХ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд░реВрдЯ рдкреИрд░реЗрдВрдЯ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЬрдбрд╝реЗрдВ рд╣реИрдВ (рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП) рддреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рд╕рд╣рд╛рдпрдХ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
https://facebook.github.io/react/blog/2015/10/01/react-render-and-top-level-api.html#helpers
ReactDOM.render() рдХреЛ рд╕реАрдзреЗ рд╣рд░ рдЬрдЧрд╣ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓рд┐рдЦрдиреЗ/рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рднреАрддрд░ рдорд╛рдЙрдВрдЯрд┐рдВрдЧ рдФрд░ рдЕрдирдорд╛рдЙрдВрдЯрд┐рдВрдЧ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░реЗрдЧрд╛ред