如何构造rxjs应用程序?大约有一百个玩具介绍示例,但不是一个完整应用程序的例子,它包含小部件,子小部件等,显示整个应用程序的数据流。如何构建rxjs代码
E.g.假设你有一个可观察的状态。你需要将它传递给一个小部件。该小部件具有需要部分状态的子小部件。你是否订阅?
sub = state.subscribe(widget)
现在'小部件'在单子之外。子小部件不能在状态上使用可观察的方法。如果您将小部件作为副作用运行,则会遇到同样的问题。
state.doAction(widget)
那么你把流传递给小部件?如果是这样,你回来了什么?
what = widget(state)
窗口小部件是否订阅状态并返回一次性消息?它返回从状态派生的流吗?如果是这样,它里面有什么?你是否试图通过广泛使用selectMany(identity)来从所有widgets/subwidgets/sub-sub-widgets中收集所有流,以获得您订阅的最终应用程序流,以便将所有内容都踢掉?
如果小部件根据需要根据状态创建子小部件,小部件如何管理其子小部件?我一直试图用groupBy()来解决问题,每个subwidget都有一个组,但是从嵌套的observable管理所有订阅或流是一个令人难以置信的噩梦。
即使是整个应用程序的一个例子也会有所帮助。
您可以评论如何处理依赖流的小部件生命周期?即您必须检查状态以了解何时创建和销毁子窗口小部件。您可以将子创建移动到subscribe()中,但是事情开始变得有点混乱,例如你在订阅状态内进行状态订阅,这会造成奇怪的订购问题。如果子窗口小部件也生成父窗口需要的流(例如,ajax请求),则会变得更加混乱。 – user1009908
你需要发布你正在尝试解决的更具体的示例用例。您目前的描述对我来说有点太抽象,无法理解您是如何陷入这种困境的。你使用任何库/框架? MVC? MVVM?等等。我几年来一直在构建高度被动的RxJs MVVM UI,而我从未遇到过这个问题。所以,如果你可以发布一个新的Q与一个具体的例子,我会添加建议,如果我可以 – Brandon
新问题在这里: http://stackoverflow.com/questions/22185030/rx-data-driven-subwidgets – user1009908