ReactJS - 在調用“setState”的任何時候都會調用render嗎?React是否每次都會重新渲染所有組件和子組件setState?如果是這樣,為什么?我認為這個想法是React只在需要的時候渲染 - 當狀態改變時。在下面的簡單示例中,兩個類在單擊文本時再次呈現,盡管狀態在后續單擊時不會更改,因為onClick處理程序始終將其state設置為相同的值:this.setState({'test':'me'});我希望渲染只會在state數據發生變化時發生。以下是該示例的代碼,作為JS Fiddle和嵌入式代碼段:var TimeInChild = React.createClass({
render: function() {
var t = new Date().getTime();
return (
<p>Time in child:{t}</p>
);
}});var Main = React.createClass({
onTest: function() {
this.setState({'test':'me'});
},
render: function() {
var currentTime = new Date().getTime();
return (
<div onClick={this.onTest}>
<p>Time in main:{currentTime}</p>
<p>Click me to update time</p>
<TimeInChild/>
</div>
);
}});ReactDOM.render(<Main/>, document.body);<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.0.0/react.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.0.0/react-dom.min.js"></script>[1]: http://jsfiddle.net/fp2tncmb/2/
ReactJS - 在調用“setState”的任何時候都會調用render嗎?
慕蓋茨4494581
2019-07-29 10:22:38