Stellen Sie sich eine Redux-Version von Stack Overflow Q & A Seite vor. Sie würden einige Komponenten haben: die Frage und ihre Stimmen, Antworten und ihre Stimmen, der Markdown-Editor für zusätzliche Antworten, der Profil-Link an der Spitze und verwandte und Netzwerk-Fragen auf der rechten Seite. Der entsprechende Redux-Speicher könnte Unterobjekte für die aktive Frage, aktive Antworten, verwandte Fragen, das Benutzerprofil und den Abreißeditor haben.
Sie eine einzige Top-Level-connect
, wie Sie erwähnt haben, aber connect
ing jede Komponente einzeln bietet Leistung und Verkapselung verwenden:
- Ein einzelner Top-Level-
connect
bedeutet, dass oben- Level App
wird immer neu gerendert, wenn sich ein Redux-Speicherwert ändert, dann muss er diese Requisiten an jede seiner untergeordneten Komponenten weiterleiten (die entweder neu rendern oder überprüfen müssen). Wenn Sie connect
für jede Komponente einzeln eingeben, dann z. B. wenn Sie etwas in den Markdown-Editor eingeben und das Segment des Editors aktualisieren, wird nur der Markdown-Editor neu gerendert.
- Eine einzige Top-Level
connect
bedeutet, dass die oberste Ebene App
alles darunter wissen muss, so dass es alle benötigten Requisiten und Ereignisse selbst übergeben kann. Individuelle connect
s bieten Kapselung: die Profilleiste kann connect
zu den Requisiten und Aktion Ersteller, die es benötigt, und übergeordnete Komponenten müssen nicht wissen oder kümmern sich um die Details.
connect-Funktion nur ermöglichen Komponente Zugriff auf Daten im Speicher zu erhalten. Es ist ein Controller zwischen Speicher (Modell) und Komponente (Ansicht), der einige Daten aus dem Speicher benötigt. Diese Funktion ist in der Lage, so viele Komponenten wie möglich zu speichern. –