2016-07-17 8 views
1

Ich war auf der Suche nach einer Antwort auf ein anderes Problem und ich fand diese Antwort (link) Ich bin nur neugierig, warum ist das Modifizieren seiner eigenen Requisiten ein Anti-Muster, und warum ist es nicht, dass Modifizierung seines eigenen Zustandes ist nicht und Anti-Muster?Warum lässt ein Anti-Pattern eine reaktive Komponente ihre eigenen Requisiten bearbeiten?

+0

Siehe: http://stackoverflow.com/questions/26089532/why-cant-i-update-props-in-react-js Es ist ein Paradigma, das das Framework verwendet. –

Antwort

2

In reagieren, Requisiten ein Objekt von Daten, die unwahrscheinlich ist im Lebenszyklus der Komponente zu ändern, und Zustand sind Daten, die wahrscheinlich ändern im Lebenszyklus des Bauteils ist.

Es hilft, explizite Regeln zu erstellen, wo Entwickler Sachen platzieren sollten, die tun/tun - nicht ändern.

Aktualisieren Sie Seiten sehr schnell, indem Sie genau wissen, dass Datenänderungen entweder streng von einem übergeordneten Element stammen (als Requisiten) oder intern als Status kommen.

die genaue Funktion überprüft, lose, wenn Staat/Requisiten sind die gleichen, dann https://github.com/facebook/react/blob/master/src/renderers/shared/stack/reconciler/ReactCompositeComponent.js#L881-L883

ich über das Lesen empfehlen würde, wie „versöhnt“ Daten für Änderungen reagieren und Aktualisierungen der dom zu machen. https://facebook.github.io/react/docs/reconciliation.html

+0

Um einen weiteren Punkt hinzuzufügen - React behandelt Requisiten als unveränderlich, so dass sie bestimmte oberflächliche Überprüfungsoptimierungen während des Rendierflusses durchführen und retten kann, wenn keine Arbeit zu erledigen ist. – probablyup

+0

@yaycmyk es prüft tatsächlich beide https://github.com/facebook/react/blob/master/src/renderers/shared/stack/reconciler/ReactCompositeComponent.js#L881-L883 –

Verwandte Themen