Ich ging durch beide Paradigmen der Redux-Entwicklung.
- Jede Komponente erhält alle Aktionen und alle Status.
- Nur die Container/Eltern/Basisseiten erhalten Sie alle Aktionen/Zustand
- die Kinder gibt nur das, was es
Was muss ich gefunden habe. Ja, es gibt einen Leistungseinbruch, denn wenn jede Komponente über jede Statuseigenschaft verfügt, stellen Sie sich vor, Sie ändern einen Zustandswert - jede einzelne Komponente erhält dieses Update - ob sie es benötigt oder nicht. Ständige Aktualisierungen
All night you are woken up:
Imagine your dog wakes up at 3:30am every night to go outside to pee.
Imagine your neighbor wakes up at 4am for work.
Imagine your other neighbor wakes up at 4:30 am for work.
Imagine your family wakes up at 5:15 am for work.
And you need to get up at 6:00am work.
In all diesen Szenarien werden Sie geweckt. Im Laufe der Zeit, wie effektiv wirst du bei der Arbeit sein? Du wirst müde, träge usw. sein ...
Jetzt stell dir vor - du kannst nur fragen, aufgewacht zu werden, wenn du es sein musst? Und nicht all die anderen Zeiten, die nichts mit dir zu tun haben?
So denke ich darüber. Lassen Sie also Ihre Kinderkomponenten nur über die Dinge wissen, die ihnen wichtig sind.
Also, ich habe normalerweise die Container-Seite/Eltern - weiß über alles - und geben Sie, was es braucht.
Vorbehalt - Ich habe festgestellt, es gibt einige Fälle, in denen eine Kindkomponente (aus welchem Grund auch immer) über fast alles wissen muss. jede einzelne Sache bis auf mehreren Ebenen für mich vorbei - auch Auswirkungen auf die Kinder, Sie auf dem Weg passieren ...
parent --->
child (just care about one thing) --->
child (just care about one thing)--->
child (I want alot of stuff)
Ich mag an das Zeug alles auf die Kinder, alle, nicht passieren vor allem, wenn diese Kinder weiter oben auf der Leiter ist es egal. Also, in diesem tiefsten Kind gebe ich alles von Anfang an - und gebe nichts weiter.
Das ist ein bisschen ein Performance-Hit, ich nehme, um den Code sauberer zu machen.
Aber insgesamt, geben Sie nicht alle Komponenten alles.Macht einen großen Leistungsunterschied über die Zeit hinweg und wenn Ihre Anwendung wächst.
Während die Verbreitung alle von ihnen wird funktionieren, imho es ist eine schlechte Praxis. Sie möchten in der Lage sein, zu lesen, welche Requisiten in Ihre Komponenten gelangen. Dadurch sparen Sie viel Zeit für die Fehlersuche und machen Ihren Code einfacher zu verstehen. –
Auch wenn Sie alle von ihnen verbreiten, wenn sich einige von ihnen ändern, wird auch das, was Ihre Komponente nicht interessiert, ein erneutes Rendern dieser Komponente erzwingen. ** Bad !! ** –
Das Rendern ist ein sehr, sehr guter Punkt. – DigitalDisaster