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>; } } });
/>
, then replace it with />
, and then delete it, then the instructions for the DOM will look like this:Initial state to first
- Create Node:
A Span
First to second
- Replace attribute:
className="first"
withclassName="second"
- Replace the node:
A Span
onA Paragraph
Second to final
- Delete node:
A Paragraph
div
. This additional information will be included in the calculation when the diff algorithm is running, since React will only compare components of the same class., 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
, .
Source: https://habr.com/ru/post/217295/
All Articles