0
我正在對React程序進行基本介紹,並且想知道我是否正確理解虛擬dom的區別。我是否正確理解Virtual Dom?
我有這樣的小應用程序:
import React, { Component } from 'react';
const svgStyle = {
border: '1px solid black'
};
const Circle =({x, y}) => (
<circle cx={x} cy={y} r="5" />
);
class Canvas extends Component {
constructor(props) {
super(props);
this.state = {
circles: []
};
this.addCircle = this.addCircle.bind(this);
}
addCircle(e) {
const {left: rectLeft, top: rectTop} = e.target.getBoundingClientRect();
const {clientX, clientY} = e;
this.setState({
circles: this.state.circles.concat([{x: clientX - rectLeft, y: clientY - rectTop}])
});
}
render() {
var {circles} = this.state;
return (
<svg width="500" height="500" viewBox="0 0 500 500" onClick={this.addCircle} style={svgStyle}>
{
circles.map(circle => (<Circle x={circle.x} y={circle.y} r="5" />))
}
</svg>
);
}
}
export default Canvas;
我的問題是,做所有的SVG <circles>
得到重新渲染每當我添加一個狀態對象?或者,React不同意這樣一個事實,即州內的人已經在那裏,不需要對他們做任何事情。
這可能有所幫助:https://facebook.github.io/react/docs/reconciliation.html。反應只會改變什麼改變。 –