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性能对比评测

Rx响应式编程知多少 - 系列:LINQ和Rx简介

新品发布|华擎撼讯发布RX6800显卡:公版设计

RXSwift的一些基本交互(OC,Swift,RXSwift对比)

反应式框架(RX)和异步处理事件

如何实现模块与单片机的RX和TX连接并让它与PC机连接,就是实现TX和RX的分时复用功能