Knockout.js和Rx.js之间的区别是什么?

有谁知道RxJs和Knockout之间的区别?从表面上看,他们似乎试图解决同样的问题,构建一个事件驱动的UI。但是有过两种经验的人,他们有什么不同/他们有什么相似之处?你能描述一些关于它们的东西来帮助我选择吗?     
已邀请:
史蒂夫(Knockout的创造者)在他的博客上解释了它的不同之处:   我非常熟悉最近使用它的Rx for JavaScript   在一个大项目,以及事实上的设计方面   淘汰赛是考虑到我的Rx体验。      关键的区别   在Knockout执行观察者模式和Rx之间的是   Knockout会自动推断出关联和依赖关系   在不需要的情况下,从常规程序代码的可观察量之间   通过特殊功能API预先指定它们。我想了   敲除使用常规的程序/命令式代码,因为它更多   大多数开发人员熟悉且平易近人。      另一个区别是   Rx针对没有状态的事件流进行了优化。在   首先,我对此及其功能纯度充满热情,但是   过了一段时间,感觉越来越像是在跳过   尴尬的箍,不得不发明额外的方法来模拟状态来管理   UI命令有效。这就是为什么,在Knockout中,所有可观察者都可以   被视为有状态 - 例如,您可以随时阅读他们的最新信息   值(缓存,顺便说一下 - 它不会重新计算,直到   基础数据变化)。      Rx比Knockout更进一步发展   组合事件流的方法,而Knockout比Rx更进一步   进入UI开发,让你将它的observable绑定到HTML DOM   元素和模板,并以您想要的任何方式操纵它们。 Rx是   非常棒,但事实证明并不是我想要的   构建丰富的UI - 因此Knockout的设计。     
它们实际上是完全不同的框架,但我可以看到为什么你会看到交叉: RxJs提供了一种针对异步流(如事件和Web请求)组合操作的方法,并包括组合流等高级方案(当A和B都出现时,启动它,但如果再次出现A或B则取消它) Knockout是一个MVVM框架,允许您通过映射其功能的模型来管理用户界面的状态。这样可以将视图的逻辑与视图分开。     

要回复问题请先登录注册