我有一個組件有2個孩子。爲什麼ReactJs在局部狀態改變時繪製整個組件?
React.createClass({
getInitialState: function(){
return {ch_1 : 'Child 1', ch_2: 'child_2'};
},
_onChange : function(e){
var value = e.target.value;
var id = e.target.id;
if(id == '1'){
this.setState({ch_1 : value});
}
else{
this.setState({ch_2 : value});
};
},
Render : function(){
return React.createElement('div', {key: 10000 },
React.createElement('input', {id: '1', key: 10, value: this.state.ch_1,
onChange: this._onChange}),
React.createElement('input', {id: '2', key: 20, value: this.state.ch_2,
onChange: this._onChange}))
}
});
當一個局部狀態改變時,整個組件再次被繪製。問題在於,在我的項目中,我有很多孩子,重繪整個組件會讓我的項目太慢。因爲我必須等待所有的組件被更新(我正在談論大約2百個孩子)。
任何人都可以告訴我爲什麼它的工作原理是這樣的嗎?
謝謝
可能重複https://stackoverflow.com/questions/33613728/what-happens-when-using-this-setstate-multiple-times-in-react-component – oklas
你可以使用'shouldComponentUpdate(nextProps,nextState)'來確定組件是否應該重新渲染。 https://facebook.github.io/react/docs/react-component.html#shouldcomponentupdate – Akeel