Rxjs流设计思想
我不熟悉反应式编程,并试图通过开发Angular+RxJs应用程序来学习。该应用程序的理念是模仿github的功能,如管理回购、管理分支等。。此应用程序将有一个左侧导航,显示与登录用户关联的所有回购,单击回购将显示与回购关联的所有分支,单击分支将显示该分支下的所有文件。用户可以添加/编辑/删除分支,添加/编辑/删除分支中的文件(通常的用例…),基本上是一个延迟加载概念 我的数据模型Rxjs流设计思想,rxjs,Rxjs,我不熟悉反应式编程,并试图通过开发Angular+RxJs应用程序来学习。该应用程序的理念是模仿github的功能,如管理回购、管理分支等。。此应用程序将有一个左侧导航,显示与登录用户关联的所有回购,单击回购将显示与回购关联的所有分支,单击分支将显示该分支下的所有文件。用户可以添加/编辑/删除分支,添加/编辑/删除分支中的文件(通常的用例…),基本上是一个延迟加载概念 我的数据模型 Repository -----UserDetails -----Array[BranchArtifact
Repository
-----UserDetails
-----Array[BranchArtifact]
-------------Array[Files] called currentElements
-------------Array[Files] called changedElements
-------------Array[Files] called conflictElements
想法1:
拥有一个BehaviorSubject/method1()
,它将返回连接的可观察的
,可在呈现回购级树导航节点的组件中订阅该组件(此呈现部分仅可用于添加/删除回购等回购级操作)
拥有一个BehaviorSubject/method2()
,它将返回连接的Observable
,可以在呈现回购级树导航节点的组件中订阅该组件(此呈现部分仅适用于添加/删除分支等分支级操作)
。。。对于每个延迟加载级别,依此类推
这种想法感觉就像嵌套对象在流级别被展平,但在UI端仍然以嵌套方式间接管理(因为每个嵌套级别都必须绑定回其父节点)
想法2:
让一个行为subject/Observable
并在每次单击树节点时获取所需的子级别数据,使用返回值更新主题,并让订阅者推断更新的数据(因为流将始终发出存储库对象),并相应地管理UI(可能是发出更改类型以简化订阅者的工作)。这感觉更像是一种命令式编程风格……在这种设计中,UI逻辑必须导航到正确的节点,以便为流中发出的每个值管理它
我已经看过很多关于这个主题的教程、视频和技术讲座,除了基本的数据结构示例之外,我找不到任何东西。非常感谢您的帮助
请各位专家提问:
这是一个非常有趣的问题。在我看来,这将是ngrx的一个很好的使用案例,尽管它可能会有太多的开销,特别是如果您正处于rxjs旅程的开始阶段。其主要思想是拥有一个单一的真相来源,智能组件可以从中提取数据并将其传递给哑组件。