Highland.js,Kefir.js和Rx.js之间有什么区别?

时间:2015-10-18 00:53:57

标签: javascript rxjs frp highland.js kefir.js

由于要在SO上避免主观回答,我特别要问:这三个功能/反应库之间的功能和/或性能差异会让我选择其中一个而不是其他库?我已经删除了BaconJS,因为它依赖于jQuery。我是JS流的新手,主要是开始在NodeJS中开始熟悉它们,后来又在AngularJS上下文中熟悉它们。如果您选择其中一个而不是其他标准,那么选择哪个标准?

2 个答案:

答案 0 :(得分:18)

以下所有内容都非常主观:)

<强> RxJS

优点:

  • 文档和大社区。
  • 与Rx *系列共享接口。这是一个很大的优势,因为您可以从RxJava社区采用样本。
  • 库中有很多原语,有些样本如何使用它们
  • 背压
  • 它是其他图书馆的一种标准具

缺点:

  • 有时它看起来过于复杂
  • 用&#34; Java&#34;实现记住

<强> Bacon.js

赞成

  • 非常好的文档与一些高级示例(蛇游戏,例如实现)
  • 很多原语
  • 用JS实现
  • 我发现它很容易开始

缺点   - 它没有实现背压,这使得它在后端变得愚蠢

<强> Highland.js

优点:

  • 它打算使用非常好的node.js(或browserify)环境
  • 没有外星人概念(来自JavaScript / Node的观点)
  • 背压
  • 实现在Node流之上,这真是个好主意
  • 占地面积小

缺点:

  • 愚蠢的文档,没有例子。实际上每次我都试图采用Rx或培根的样品
  • 缺少一些原语。实际上你可以自己实施大部分已经实施但很痛苦(见上一点)

摘要:因为缺少样本你会全部学习:)恕我直言,最透视的是Highland.js。但RxJs更加成熟

提示:如果您需要在StackOverflow上询问某些内容,请使用RxJS方言并将其翻译为年轻人

答案 1 :(得分:5)

Reactive-Extensions存储库具有比较这些(其他每个与RxJS相对应的页面)。

Bacon.js (and kefir.js as well)

Highland.js