如何構造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