Redux: Wo ist "glückliches Medium" zwischen intelligenten und dummen Komponenten?

Erstellt am 19. Apr. 2016  ·  3Kommentare  ·  Quelle: reduxjs/redux

Ich habe mir Dans Redux-Tutorials zu Egghead angesehen und erinnere mich an einen Rat: Wenn die übergeordnete Komponente einige Daten nicht verwendet, sondern nur für die Weitergabe an Kinder benötigt, tun Sie es nicht. Verwenden Sie connect über der untergeordneten Komponente, die diese Daten benötigt.

Ich mag diesen Rat, weil ich es hasse, Tonnen von Daten durch Requisiten zu übertragen. Ich dachte, dass dies ein häufig verwendeter Ansatz ist, aber kürzlich habe ich ein "Mini-Twitter" -Projekt als Testaufgabe für das Unternehmen implementiert, das Redux in seinem Projekt verwendet, und deshalb möchte ich dort arbeiten.

Aber mein Code wurde abgelehnt, da "React-way ist zu maximal dumme Komponenten". Ist das wahr?
Hier ist mein Code, wenn jemand einen Blick auf https://bitbucket.org/amorphius/minitwitter/overview werfen möchte
Der Grund, warum es als fehlerhafter Code erkannt wurde, ist, dass der Code zu viele connect enthält.

Wo ist glückliches Medium?

question

Hilfreichster Kommentar

Wir haben immer gesagt, dass es in früheren Versionen von Dokumenten besser ist, weniger verbundene Komponenten zu haben, aber ich habe nicht erwartet, wie viel ein Frachtkult daraus werden würde. 😞 Ja, das Anschließen jeder Komponente ist oft ein Overkill, aber auch alles an die Spitze zu setzen! Das Verbinden nur, um dispatch ist besonders harmlos, daher sollten Sie sich nicht schlecht fühlen, wenn Sie dies oft tun.

Ihr Code sieht für mich absolut gut aus. 👍

Alle 3 Kommentare

Wir haben immer gesagt, dass es in früheren Versionen von Dokumenten besser ist, weniger verbundene Komponenten zu haben, aber ich habe nicht erwartet, wie viel ein Frachtkult daraus werden würde. 😞 Ja, das Anschließen jeder Komponente ist oft ein Overkill, aber auch alles an die Spitze zu setzen! Das Verbinden nur, um dispatch ist besonders harmlos, daher sollten Sie sich nicht schlecht fühlen, wenn Sie dies oft tun.

Ihr Code sieht für mich absolut gut aus. 👍

Vielen Dank. Zumindest habe ich jetzt ein starkes Argument dafür, dass mein Code in Ordnung ist und wahrscheinlich einen Job in besserer Gesellschaft bekommt :)

Aber ich kann mir immer noch kein Szenario vorstellen, in dem connect übertrieben ist. Wie man diese Fähigkeit entwickelt, um zu wissen, welche Regel ich brechen muss, um entweder Daten von der übergeordneten Steuerung zu übergeben, die diese Daten nicht zur untergeordneten Steuerung verwendet, oder um einen anderen connect im Code zu haben (insbesondere, wenn ein kleiner Datenblock gelesen wird aus dem Laden)?

Welche Probleme treten bei vielen connect in der App auf?

Der Abonnentenbenachrichtigungsprozess von Redux ist eine einfache Schleife, die jeden Teilnehmerrückruf ausführt. Das ist also offensichtlich O (n). Theoretisch könnte dies zu einem Leistungsproblem werden, wenn Teilnehmerrückrufe etwas Komplexes tun oder wenn die Anzahl der Teilnehmer sehr groß wird.

In der Praxis ist dies wahrscheinlich kein großes Problem. Ich vermute, Sie müssten mehrere tausend aktive Abonnements haben, wobei viele Aktionen eine Sekunde lang ausgelöst werden, bevor es realistisch zu einem Problem wird. Ich kenne derzeit keine spezifischen Benchmarks, auf die ich verweisen könnte, um dies zu überprüfen (es sei denn, der aktuelle MobX / Redux-Vergleich würde sich darauf beziehen).

Insgesamt denke ich, dass Sie sicher sein sollten, wenn Sie dem klassischen Ansatz "Lass es funktioniert, mach es richtig, mach es schnell" folgen. Schreiben Sie Code, mit dem die Funktionen Ihrer Anwendung ordnungsgemäß funktionieren. Schauen Sie sich an, was Sie geschrieben haben, und passen Sie die Struktur bei Bedarf an, damit es sinnvoller ist. Wenn es langsam erscheint, messen und messen Sie die tatsächlich langsamen Teile und reparieren Sie sie.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen