首页 > 解决方案 > MobX Observables 和 RxJS 有什么关系吗?

问题描述

标题几乎是自我解释的。我找不到任何关于它的信息。Angular 在幕后使用 RxJs 可观察对象,特别是在 React 和 MobX 中发生的情况是一样的吗?

标签: javascriptangularreactjsrxjsmobx

解决方案


从我在 MobX 源代码中看到的内容来看,没有太多重叠。它们都不相互使用,也不具有共同的依赖关系。

MobX 中对 Observable 的解释似乎是对象、数组、地图等都被包裹了一个 Proxy 对象来跟踪和通知属性的变化。这用于通过应用程序传达状态更改,而对 vanilla javascript 类型的更改相对较少(这可能是他们所说的“透明”)。虽然这些类型可能是可观察的(如在动词中),但它们不是由 ReactiveX 定义的 Observables的实现。

另一方面,RxJS 提供了一个全新的,有些人会说是巨大的 API,用于修改由不一定代表 vanilla javascript 类型的抽象 Observable 类型生成的所谓“通知”。代替直接强制更改对象,由可管道运算符组成的“LINQ-ish”语言用于表达执行流程。在许多方面,RxJS 可以被视为 JavaScript 的语言扩展,以支持Observable 合约中定义的响应式编程。

虽然有一个重叠,那就是“MobX”声称是一个用于

透明地应用函数式反应式编程

RxJS 也提供响应式编程,但它绝对不是透明的。


推荐阅读