Wie strukturiert man eine rxjs-App? Es gibt ungefähr hundert Beispiele für Spielzeug-Intro, aber nicht ein einziges Beispiel für eine vollständige App mit Widgets, Subwidgets usw., die den Datenfluss durch die gesamte Anwendung zeigen.So strukturieren Sie den RXJS-Code
z. Angenommen, Sie haben eine beobachtbare Eigenschaft. Sie müssen es an ein Widget übergeben. Dieses Widget hat Subwidgets, die Teile dieses Status benötigen. Machst du ein Abo?
sub = state.subscribe(widget)
Jetzt ist "Widget" außerhalb der Monade. Die Subwidgets können keine beobachtbaren Methoden für den Status verwenden. Sie haben das gleiche Problem, wenn Sie das Widget als Nebeneffekt ausführen.
state.doAction(widget)
So übergeben Sie den Stream Widget? Wenn ja, was bekommst du zurück?
what = widget(state)
Verbindet das Widget den Zustand und gibt einen Einwegartikel zurück? Gibt es einen vom Staat abgeleiteten Strom zurück? Wenn ja, was ist drin? Versuchen Sie, alle Streams zusammen aus allen Widgets/Subwidgets/Sub-Sub-Widgets mit extensiver Verwendung von selectMany (Identität) zu sammeln, um einen endgültigen Bewerbungsstrom zu erhalten, den Sie abonnieren, um das Ganze abzuschlagen?
Und wenn das Widget erstellt Sub-Widgets auf Anfrage, je nach Status, wie verwaltet Widget seine Subwidgets? Ich versuche weiterhin eine Lösung mit groupBy(), mit einer Gruppe pro Subwidget, aber die Verwaltung aller Abonnements oder Streams von der verschachtelten Observable ist ein unglaublicher Albtraum.
Auch ein Beispiel einer ganzen Anwendung wäre hilfreich.
Können Sie kommentieren, wie Sie damit umgehen Widget-Lebenszeiten, die von einem Stream abhängen? I.e. Sie müssen den Status überprüfen, um zu wissen, wann die untergeordneten Widgets erstellt und gelöscht werden sollen. Sie können die Child-Erstellung in subscribe() verschieben, aber dann beginnen die Dinge etwas verwirrend zu werden, z. Du machst einen Subscribe-On-Status innerhalb eines Subscribe-On-Status, der seltsame Ordnungsprobleme verursacht. Wenn die untergeordneten Widgets auch Streams (z. B. ajax-Anforderungen) generieren, die der Parent benötigt, wird dies noch verwirrender. – user1009908
Sie müssten einen spezifischeren Anwendungsfall veröffentlichen, den Sie zu lösen versuchen. Ihre aktuelle Beschreibung ist ein wenig zu abstrakt, um zu verstehen, wie Sie in diesem Dilemma gelandet sind. Und verwenden Sie irgendwelche Bibliotheken/Frameworks? MVC? MVVM? usw. Ich baue seit einigen Jahren hochreaktive RxJs MVVM UI auf, und ich habe dieses Problem nie erlebt. Also, wenn Sie ein neues Q mit einem bestimmten Beispiel veröffentlichen können, werde ich einen Hinweis hinzufügen, wenn ich kann – Brandon
Neue Frage hier: http://stackoverflow.com/questions/22185030/rx-data-driven-subwidgets – user1009908