Highland.js、Kefir.js 和 Rx.js 之间的区别特征是啥?
Posted
技术标签:
【中文标题】Highland.js、Kefir.js 和 Rx.js 之间的区别特征是啥?【英文标题】:What are the differentiating features between Highland.js, Kefir.js, and Rx.js?Highland.js、Kefir.js 和 Rx.js 之间的区别特征是什么? 【发布时间】:2016-01-16 13:09:44 【问题描述】:由于在 SO 上要避免主观回答,我特地问:这三个函数式/反应式库之间的功能和/或性能差异是什么,让我选择其中一个而不是其他库?我已经淘汰了 BaconJS,因为它依赖于 jQuery。我是 JS 流的新手,主要是想先在 NodeJS 中熟悉它们,然后再在 AngularJS 上下文中熟悉它们。如果您选择其中之一而不是其他,那么导致选择的标准是什么?
【问题讨论】:
【参考方案1】:下面的一切都是相当主观的:)
RxJS
优点:
文档和大型社区。 与 Rx* 系列共享接口。这是一个很大的优势,因为您可以采用来自 RxJava 社区的示例。 库中有很多原语以及如何使用它们的一些示例 背压 它是其他库的一种标准具缺点:
有时看起来过于复杂 在实现时考虑到“Java”Bacon.js
优点
非常好的文档,包含一些高级示例(例如蛇游戏、实现) 很多原语 考虑到 JS 实现 我发现它很容易上手缺点 - 它没有实现背压,这使得它在后端很傻
Highland.js
优点:
它适用于非常好的 node.js(或 browserify)环境 没有外星概念(从 javascript/Node 角度来看) 背压 实现在 Node 流之上,这真是个好主意 占地面积小缺点:
愚蠢的文档,没有示例。实际上,每次我尝试采用 Rx 或 Bacon 的样本时 缺少一些原语。实际上,您可以自己实现其中大部分已经实现,但这很痛苦(见上一点)总结:因为没有示例,您将全部学习它们:) 恕我直言,最有前景的是 Highland.js。但是 RxJs 要成熟得多
提示:如果您需要在 *** 上提问,请使用 RxJS 方言并将其翻译为青年
【讨论】:
感谢您的回答。这正是我一直在寻找的(“优点/缺点”)。根据您上面写的内容,Highland.js 看起来可能是最有吸引力的。但是,当我在探索 React 时,a sample exists to use RxJS for the data flow instead of Flux。还有Rx bindings for React 和an example for combining React, RxJS, React-router, and Webpack。所以你是对的,我最终可能会学到不止一个。 :)【参考方案2】:Reactive-Extensions 存储库有比较这些的页面(每个其他页面自然是 RxJS)。
Bacon.js (and kefir.js as well)
Highland.js
【讨论】:
感谢您指出这些;我会通读它们。我会暂时保留这个问题,以防有人对它们进行了深入比较。以上是关于Highland.js、Kefir.js 和 Rx.js 之间的区别特征是啥?的主要内容,如果未能解决你的问题,请参考以下文章
RTX3080和RX6800XT谁更强?RX6800XT和RTX3080性能对比评测