рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдлреЗрд╕рдмреБрдХ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИред рдпрд╣ рдЦрд░реЛрдВрдЪ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рдеред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдФрд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд░рд┐рдПрдХреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛, рдЬреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
рдореБрд╢реНрдХрд┐рд▓ рдПрд▓реНрдЧреЛрд░рд┐рдердо
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЬрд╛рдПрдВ, рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдЕрдВрджрд╛рдЬрд╛ рд╣реИ рдХрд┐ рд░рд┐рдПрдХреНрдЯ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
var MyComponent = React.createClass({ render: function() { if (this.props.first) { return <div className="first"><span>A Span</span></div>; } else { return <div className="second"><p>A Paragraph</p></div>; } } });
рдХрд┐рд╕реА рднреА рд╕рдордп, рдЖрдк рдпрд╣ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХрд╛ UI рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛ред рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкрд░рд┐рдгрд╛рдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ DOM рдЯреНрд░реА рдирд╣реАрдВ рд╣реИред рдпреЗ рдХреЗрд╡рд▓ рд╣рд▓реНрдХреЗ рдЬреЗрдПрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо "рд╡рд░реНрдЪреБрдЕрд▓ рдбреЛрдо" рдХрд╣рддреЗ рд╣реИрдВред
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрдкрдХреЗ рд╡рд░реНрдЪреБрдЕрд▓ DOM рдХреА рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдиреНрдпреВрдирддрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЪрд░рдгреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдХрд░реЗрдЧреА рдЬреЛ рдЖрдкрдХреЛ рдкрд┐рдЫрд▓реА рдбрд┐рд╕реНрдкреНрд▓реЗ рд╕реНрдЯреЗрдЯ рд╕реЗ рдЕрдЧрд▓реЗ рддрдХ рдЬрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╣рдо рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ
/>
, рддреЛ рдЗрд╕реЗ рдмрджрд▓реЗрдВ
/>
, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрдВ, рдлрд┐рд░ DOM рдХреЗ рдирд┐рд░реНрджреЗрд╢ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ:
рдкрд╣рд▓реЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░рд╛рдЬреНрдп
- рдиреЛрдб рдмрдирд╛рдПрдБ:
A Span
рдкрд╣рд▓реА рд╕реЗ рджреВрд╕рд░реА
- рдмрджрд▓реЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛:
className="first"
with className="second"
- рдиреЛрдб рдмрджрд▓реЗрдВ:
A Paragraph
рд╕рд╛рде A Paragraph
A Span
рджреВрд╕рд░рд╛ рдлрд╛рдЗрдирд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
- рд╣рдЯрд╛рдПрдВ рдиреЛрдб:
A Paragraph
рд╕реНрддрд░ рдХреЗ рдмрд╛рдж рдХрд╛ рд╕реНрддрд░
рджреЛ рдордирдорд╛рдиреА рдкреЗрдбрд╝реЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреА рдиреНрдпреВрдирддрдо рд╕рдВрдЦреНрдпрд╛ рдЦреЛрдЬрдирд╛ рдПрдХ O (n ^ 3) рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд░рд┐рдПрдХреНрдЯ рдПрдХ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдФрд░ рдЕрддреНрдпрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реЗрдпреБрд░рд┐рд╕реНрдЯрд┐рдХ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдУ (рдПрди) рдХреЗ рдХрд░реАрдм рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЬрдЯрд┐рд▓рддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд░рд┐рдПрдХреНрдЯ рдмрд╕ рдЖрдВрддрд░рд┐рдХ рдиреЛрдбреНрд╕ рджреНрд╡рд╛рд░рд╛ рдкреЗрдбрд╝реЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдмрдбрд╝рд╛ рдиреБрдХрд╕рд╛рди рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╣рдо рдЖрдВрддрд░рд┐рдХ рдиреЛрдб рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рддреЗ рд╣реБрдП "рдКрд░реНрдзреНрд╡рд╛рдзрд░" (рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░реЛрдВ рдкрд░) рд╕реЗ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдирд┐рдкрдЯрддреЗ рд╣реИрдВред рдЖрдорддреМрд░ рдкрд░ рд╣рдо рдиреЛрдбреНрд╕ рдХреЛ "рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ" (рд╕рдорд╛рди рд╕реНрддрд░ рдкрд░) рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

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

рдШрдЯрдХреЛрдВ
рд░рд┐рдПрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрд╕реНрдЯрдо рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рдЕрдВрддрддрдГ рдПрдХ рдкреЗрдбрд╝ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ
div
s рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдЧрдгрдирд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХреА рдЬрд╛рдПрдЧреА рдЬрдм рдЕрд▓рдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗрд╡рд▓ рдЙрд╕реА рд╡рд░реНрдЧ рдХреЗ рдШрдЯрдХреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдЧреАред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐
, React . , , , .

DOM -
, React , " ". , React , W3C. , IE8 , .
. . , target DOM . DOM, React " DOM".
, React id, DOM. , id . - , , , DOM. , , :
// dispatchEvent('click', 'abc', event) clickCaptureListeners['a'](event); clickCaptureListeners['a.b'](event); clickCaptureListeners['abc'](event); clickBubbleListeners['abc'](event); clickBubbleListeners['a.b'](event); clickBubbleListeners['a'](event);
, . , . React , , . .
, setState
, React , . , React .
, , DOM . , , , JavaScript. , React, " ".

setState
, DOM . setState
, React : render
, . , , DOM.
, . - , ,
. , JavaScript .
- , React , setState
, - . , , . , . , , .

- :
boolean shouldComponentUpdate(object nextProps, object nextState)
, React, . , .
, JavaScript . , ? , , ?
, , , , , , .

, React , . , DOM , , ...
, JavaScript . React - DOM " ". .
React : setState
. , shouldComponentUpdate
, .
, React . , , , .

DOM -
, React , " ". , React , W3C. , IE8 , .
. . , target
DOM . DOM, React " DOM".
, React id, DOM. , id . - , , , DOM. , , :
// dispatchEvent('click', 'abc', event) clickCaptureListeners['a'](event); clickCaptureListeners['a.b'](event); clickCaptureListeners['abc'](event); clickBubbleListeners['abc'](event); clickBubbleListeners['a.b'](event); clickBubbleListeners['a'](event);
, . , . React , , . .
, setState
, React , . , React .
, , DOM . , , , JavaScript. , React, " ".

setState
, DOM . setState
, React : render
, . , , DOM.
, . - , ,
. , JavaScript .
- , React , setState
, - . , , . , . , , .

- :
boolean shouldComponentUpdate(object nextProps, object nextState)
, React, . , .
, JavaScript . , ? , , ?
, , , , , , .

, React , . , DOM , , ...
, JavaScript . React - DOM " ". .
React : setState
. , shouldComponentUpdate
, .
, React . , , , .

DOM -
, React , " ". , React , W3C. , IE8 , .
. . , target DOM . DOM, React " DOM".
, React id, DOM. , id . - , , , DOM. , , :
// dispatchEvent('click', 'abc', event) clickCaptureListeners['a'](event); clickCaptureListeners['a.b'](event); clickCaptureListeners['abc'](event); clickBubbleListeners['abc'](event); clickBubbleListeners['a.b'](event); clickBubbleListeners['a'](event);
, . , . React , , . .
, setState
, React , . , React .
, , DOM . , , , JavaScript. , React, " ".

setState
, DOM . setState
, React : render
, . , , DOM.
, . - , ,
. , JavaScript .
- , React , setState
, - . , , . , . , , .

- :
boolean shouldComponentUpdate(object nextProps, object nextState)
, React, . , .
, JavaScript . , ? , , ?
, , , , , , .

, React , . , DOM , , ...
, JavaScript . React - DOM " ". .
React : setState
. , shouldComponentUpdate
, .
, React . , , , .

DOM -
, React , " ". , React , W3C. , IE8 , .
. . , target
DOM . DOM, React " DOM".
, React id, DOM. , id . - , , , DOM. , , :
// dispatchEvent('click', 'abc', event) clickCaptureListeners['a'](event); clickCaptureListeners['a.b'](event); clickCaptureListeners['abc'](event); clickBubbleListeners['abc'](event); clickBubbleListeners['a.b'](event); clickBubbleListeners['a'](event);
, . , . React , , . .
, setState
, React , . , React .
, , DOM . , , , JavaScript. , React, " ".

setState
, DOM . setState
, React : render
, . , , DOM.
, . - , ,
. , JavaScript .
- , React , setState
, - . , , . , . , , .

- :
boolean shouldComponentUpdate(object nextProps, object nextState)
, React, . , .
, JavaScript . , ? , , ?
, , , , , , .

, React , . , DOM , , ...
, JavaScript . React - DOM " ". .
React : setState
. , shouldComponentUpdate
, .
, React . , , , .
DOM -
, React , " ". , React , W3C. , IE8 , .
. . , target
DOM . DOM, React " DOM".
, React id, DOM. , id . - , , , DOM. , , :
// dispatchEvent('click', 'abc', event) clickCaptureListeners['a'](event); clickCaptureListeners['a.b'](event); clickCaptureListeners['abc'](event); clickBubbleListeners['abc'](event); clickBubbleListeners['a.b'](event); clickBubbleListeners['a'](event);
, . , . React , , . .
, setState
, React , . , React .
, , DOM . , , , JavaScript. , React, " ".
setState
, DOM . setState
, React : render
, . , , DOM.
, . - , ,
. , JavaScript .
- , React , setState
, - . , , . , . , , .
- :
boolean shouldComponentUpdate(object nextProps, object nextState)
, React, . , .
, JavaScript . , ? , , ?
, , , , , , .
, React , . , DOM , , ...
, JavaScript . React - DOM " ". .
React : setState
. , shouldComponentUpdate
, .
, React . , , , .

DOM -
, React , " ". , React , W3C. , IE8 , .
. . , target
DOM . DOM, React " DOM".
, React id, DOM. , id . - , , , DOM. , , :
// dispatchEvent('click', 'abc', event) clickCaptureListeners['a'](event); clickCaptureListeners['a.b'](event); clickCaptureListeners['abc'](event); clickBubbleListeners['abc'](event); clickBubbleListeners['a.b'](event); clickBubbleListeners['a'](event);
, . , . React , , . .
, setState
, React , . , React .
, , DOM . , , , JavaScript. , React, " ".

setState
, DOM . setState
, React : render
, . , , DOM.
, . - , ,
. , JavaScript .
- , React , setState
, - . , , . , . , , .

- :
boolean shouldComponentUpdate(object nextProps, object nextState)
, React, . , .
, JavaScript . , ? , , ?
, , , , , , .

, React , . , DOM , , ...
, JavaScript . React - DOM " ". .
React : setState
. , shouldComponentUpdate
, .
, React . , , , .

DOM -
, React , " ". , React , W3C. , IE8 , .
. . , target
DOM . DOM, React " DOM".
, React id, DOM. , id . - , , , DOM. , , :
// dispatchEvent('click', 'abc', event) clickCaptureListeners['a'](event); clickCaptureListeners['a.b'](event); clickCaptureListeners['abc'](event); clickBubbleListeners['abc'](event); clickBubbleListeners['a.b'](event); clickBubbleListeners['a'](event);
, . , . React , , . .
, setState
, React , . , React .
, , DOM . , , , JavaScript. , React, " ".

setState
, DOM . setState
, React : render
, . , , DOM.
, . - , ,
. , JavaScript .
- , React , setState
, - . , , . , . , , .

- :
boolean shouldComponentUpdate(object nextProps, object nextState)
, React, . , .
, JavaScript . , ? , , ?
, , , , , , .

, React , . , DOM , , ...
, JavaScript . React - DOM " ". .
React : setState
. , shouldComponentUpdate
, .
, React . , , , .

DOM -
, React , " ". , React , W3C. , IE8 , .
. . , target
DOM . DOM, React " DOM".
, React id, DOM. , id . - , , , DOM. , , :
// dispatchEvent('click', 'abc', event) clickCaptureListeners['a'](event); clickCaptureListeners['a.b'](event); clickCaptureListeners['abc'](event); clickBubbleListeners['abc'](event); clickBubbleListeners['a.b'](event); clickBubbleListeners['a'](event);
, . , . React , , . .
, setState
, React , . , React .
, , DOM . , , , JavaScript. , React, " ".

setState
, DOM . setState
, React : render
, . , , DOM.
, . - , ,
. , JavaScript .
- , React , setState
, - . , , . , . , , .

- :
boolean shouldComponentUpdate(object nextProps, object nextState)
, React, . , .
, JavaScript . , ? , , ?
, , , , , , .

, React , . , DOM , , ...
, JavaScript . React - DOM " ". .
React : setState
. , shouldComponentUpdate
, .
, React . , , , .

DOM -
, React , " ". , React , W3C. , IE8 , .
. . , target
DOM . DOM, React " DOM".
, React id, DOM. , id . - , , , DOM. , , :
// dispatchEvent('click', 'abc', event) clickCaptureListeners['a'](event); clickCaptureListeners['a.b'](event); clickCaptureListeners['abc'](event); clickBubbleListeners['abc'](event); clickBubbleListeners['a.b'](event); clickBubbleListeners['a'](event);
, . , . React , , . .
, setState
, React , . , React .
, , DOM . , , , JavaScript. , React, " ".

setState
, DOM . setState
, React : render
, . , , DOM.
, . - , ,
. , JavaScript .
- , React , setState
, - . , , . , . , , .

- :
boolean shouldComponentUpdate(object nextProps, object nextState)
, React, . , .
, JavaScript . , ? , , ?
, , , , , , .

, React , . , DOM , , ...
, JavaScript . React - DOM " ". .
React : setState
. , shouldComponentUpdate
, .
, React . , , , .

DOM -
, React , " ". , React , W3C. , IE8 , .
. . , target
DOM . DOM, React " DOM".
, React id, DOM. , id . - , , , DOM. , , :
// dispatchEvent('click', 'abc', event) clickCaptureListeners['a'](event); clickCaptureListeners['a.b'](event); clickCaptureListeners['abc'](event); clickBubbleListeners['abc'](event); clickBubbleListeners['a.b'](event); clickBubbleListeners['a'](event);
, . , . React , , . .
, setState
, React , . , React .
, , DOM . , , , JavaScript. , React, " ".

setState
, DOM . setState
, React : render
, . , , DOM.
, . - , ,
. , JavaScript .
- , React , setState
, - . , , . , . , , .

- :
boolean shouldComponentUpdate(object nextProps, object nextState)
, React, . , .
, JavaScript . , ? , , ?
, , , , , , .

, React , . , DOM , , ...
, JavaScript . React - DOM " ". .
React : setState
. , shouldComponentUpdate
, .
, React . , , , .

DOM -
, React , " ". , React , W3C. , IE8 , .
. . , target
DOM . DOM, React " DOM".
, React id, DOM. , id . - , , , DOM. , , :
// dispatchEvent('click', 'abc', event) clickCaptureListeners['a'](event); clickCaptureListeners['a.b'](event); clickCaptureListeners['abc'](event); clickBubbleListeners['abc'](event); clickBubbleListeners['a.b'](event); clickBubbleListeners['a'](event);
, . , . React , , . .
, setState
, React , . , React .
, , DOM . , , , JavaScript. , React, " ".

setState
, DOM . setState
, React : render
, . , , DOM.
, . - , ,
. , JavaScript .
- , React , setState
, - . , , . , . , , .

- :
boolean shouldComponentUpdate(object nextProps, object nextState)
, React, . , .
, JavaScript . , ? , , ?
, , , , , , .

, React , . , DOM , , ...
, JavaScript . React - DOM " ". .
React : setState
. , shouldComponentUpdate
, .
, React . , , , .

DOM -
, React , " ". , React , W3C. , IE8 , .
. . , target
DOM . DOM, React " DOM".
, React id, DOM. , id . - , , , DOM. , , :
// dispatchEvent('click', 'abc', event) clickCaptureListeners['a'](event); clickCaptureListeners['a.b'](event); clickCaptureListeners['abc'](event); clickBubbleListeners['abc'](event); clickBubbleListeners['a.b'](event); clickBubbleListeners['a'](event);
, . , . React , , . .
, setState
, React , . , React .
, , DOM . , , , JavaScript. , React, " ".

setState
, DOM . setState
, React : render
, . , , DOM.
, . - , ,
. , JavaScript .
- , React , setState
, - . , , . , . , , .

- :
boolean shouldComponentUpdate(object nextProps, object nextState)
, React, . , .
, JavaScript . , ? , , ?
, , , , , , .

, React , . , DOM , , ...
, JavaScript . React - DOM " ". .
React : setState
. , shouldComponentUpdate
, .
, React . , , , .

DOM -
, React , " ". , React , W3C. , IE8 , .
. . , target
DOM . DOM, React " DOM".
, React id, DOM. , id . - , , , DOM. , , :
// dispatchEvent('click', 'abc', event) clickCaptureListeners['a'](event); clickCaptureListeners['a.b'](event); clickCaptureListeners['abc'](event); clickBubbleListeners['abc'](event); clickBubbleListeners['a.b'](event); clickBubbleListeners['a'](event);
, . , . React , , . .
, setState
, React , . , React .
, , DOM . , , , JavaScript. , React, " ".

setState
, DOM . setState
, React : render
, . , , DOM.
, . - , ,
. , JavaScript .
- , React , setState
, - . , , . , . , , .

- :
boolean shouldComponentUpdate(object nextProps, object nextState)
, React, . , .
, JavaScript . , ? , , ?
, , , , , , .

, React , . , DOM , , ...
, JavaScript . React - DOM " ". .
React : setState
. , shouldComponentUpdate
, .
, React . , , , .

DOM -
, React , " ". , React , W3C. , IE8 , .
. . , target
DOM . DOM, React " DOM".
, React id, DOM. , id . - , , , DOM. , , :
// dispatchEvent('click', 'abc', event) clickCaptureListeners['a'](event); clickCaptureListeners['a.b'](event); clickCaptureListeners['abc'](event); clickBubbleListeners['abc'](event); clickBubbleListeners['a.b'](event); clickBubbleListeners['a'](event);
, . , . React , , . .
, setState
, React , . , React .
, , DOM . , , , JavaScript. , React, " ".

setState
, DOM . setState
, React : render
, . , , DOM.
, . - , ,
. , JavaScript .
- , React , setState
, - . , , . , . , , .

- :
boolean shouldComponentUpdate(object nextProps, object nextState)
, React, . , .
, JavaScript . , ? , , ?
, , , , , , .

, React , . , DOM , , ...
, JavaScript . React - DOM " ". .
React : setState
. , shouldComponentUpdate
, .
, React . , , , .
DOM -
, React , " ". , React , W3C. , IE8 , .
. . , target
DOM . DOM, React " DOM".
, React id, DOM. , id . - , , , DOM. , , :
// dispatchEvent('click', 'abc', event) clickCaptureListeners['a'](event); clickCaptureListeners['a.b'](event); clickCaptureListeners['abc'](event); clickBubbleListeners['abc'](event); clickBubbleListeners['a.b'](event); clickBubbleListeners['a'](event);
, . , . React , , . .
, setState
, React , . , React .
, , DOM . , , , JavaScript. , React, " ".
setState
, DOM . setState
, React : render
, . , , DOM.
, . - , ,
. , JavaScript .
- , React , setState
, - . , , . , . , , .
- :
boolean shouldComponentUpdate(object nextProps, object nextState)
, React, . , .
, JavaScript . , ? , , ?
, , , , , , .
, React , . , DOM , , ...
, JavaScript . React - DOM " ". .
React : setState
. , shouldComponentUpdate
, .
, React . , , , .

DOM -
, React , " ". , React , W3C. , IE8 , .
. . , target
DOM . DOM, React " DOM".
, React id, DOM. , id . - , , , DOM. , , :
// dispatchEvent('click', 'abc', event) clickCaptureListeners['a'](event); clickCaptureListeners['a.b'](event); clickCaptureListeners['abc'](event); clickBubbleListeners['abc'](event); clickBubbleListeners['a.b'](event); clickBubbleListeners['a'](event);
, . , . React , , . .
, setState
, React , . , React .
, , DOM . , , , JavaScript. , React, " ".

setState
, DOM . setState
, React : render
, . , , DOM.
, . - , ,
. , JavaScript .
- , React , setState
, - . , , . , . , , .

- :
boolean shouldComponentUpdate(object nextProps, object nextState)
, React, . , .
, JavaScript . , ? , , ?
, , , , , , .

, React , . , DOM , , ...
, JavaScript . React - DOM " ". .
React : setState
. , shouldComponentUpdate
, .
, React . , , , .

DOM -
, React , " ". , React , W3C. , IE8 , .
. . , target
DOM . DOM, React " DOM".
, React id, DOM. , id . - , , , DOM. , , :
// dispatchEvent('click', 'abc', event) clickCaptureListeners['a'](event); clickCaptureListeners['a.b'](event); clickCaptureListeners['abc'](event); clickBubbleListeners['abc'](event); clickBubbleListeners['a.b'](event); clickBubbleListeners['a'](event);
, . , . React , , . .
, setState
, React , . , React .
, , DOM . , , , JavaScript. , React, " ".

setState
, DOM . setState
, React : render
, . , , DOM.
, . - , ,
. , JavaScript .
- , React , setState
, - . , , . , . , , .

- :
boolean shouldComponentUpdate(object nextProps, object nextState)
, React, . , .
, JavaScript . , ? , , ?
, , , , , , .

, React , . , DOM , , ...
, JavaScript . React - DOM " ". .
React : setState
. , shouldComponentUpdate
, .
, React . , , , .

DOM -
, React , " ". , React , W3C. , IE8 , .
. . , target
DOM . DOM, React " DOM".
, React id, DOM. , id . - , , , DOM. , , :
// dispatchEvent('click', 'abc', event) clickCaptureListeners['a'](event); clickCaptureListeners['a.b'](event); clickCaptureListeners['abc'](event); clickBubbleListeners['abc'](event); clickBubbleListeners['a.b'](event); clickBubbleListeners['a'](event);
, . , . React , , . .
, setState
, React , . , React .
, , DOM . , , , JavaScript. , React, " ".

setState
, DOM . setState
, React : render
, . , , DOM.
, . - , ,
. , JavaScript .
- , React , setState
, - . , , . , . , , .

- :
boolean shouldComponentUpdate(object nextProps, object nextState)
, React, . , .
, JavaScript . , ? , , ?
, , , , , , .

, React , . , DOM , , ...
, JavaScript . React - DOM " ". .
React : setState
. , shouldComponentUpdate
, .