Rendert React bei jedem Aufruf von setState()
alle Komponenten und Unterkomponenten neu?
Wenn ja, warum? Ich dachte, die Idee war, dass React nur so wenig wie möglich rendert - wenn sich der Zustand ändert.
In folgendem einfachen Beispiel rendern beide Klassen erneut, wenn der Text angeklickt wird, obwohl sich der Zustand bei aufeinanderfolgenden Klicks nicht ändert, da der onClick-Handler immer den state
auf den gleichen Wert setzt:
this.setState({'test':'me'});
Ich hätte erwartet, dass ein Rendern nur dann stattfindet, wenn sich die Daten des state
geändert haben.
Hier ist der Code des Beispiels, als JS Fiddle, und eingebetteter Ausschnitt:
var TimeInChild = React.createClass({
render: function() {
var t = new Date().getTime();
return (
Zeit im Kind:{t}
);
}
});
var Main = React.createClass({
onTest: function() {
this.setState({'test':'me'});
},
render: function() {
var currentTime = new Date().getTime();
return (
Zeit im Hauptbereich:{currentTime}
Klicken Sie auf mich, um die Zeit zu aktualisieren
);
}
});
ReactDOM.render(