Last updated on Jun 20, 2020

Untitled

RxJS 是什么?

官方:RxJS 是 Reactive Extensions for JavaScript 的缩写,起源于 Reactive Extensions,是一个基于可观测数据流组成异步和基于事件的库。

RxJS 是 Reactive Extensions 在 JavaScript 上的实现。

解决什么问题?

编程范式

所谓编程范式就是编写程序的方法论。了解 RxJS 所使用的编程范式有助于我们更好的理解它。

响应式编程(RP —— Reactive Programming)

响应式编程是一种面向数据流和变化传播的编程范式。在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。—— wikipedia

响应式编程是使用异步数据流进行编程。

好处很明显,只关注业务逻辑互相依赖的事件而不是实现细节,适用于大量和数据有关的事件交互,特别是高实时性要求。

事件机制

事件机制,在前端有很多的应用。

Node.js 特点:异步事件驱动,这是因为 Node.js 本身利用 JavaScript 的语言特点实现了自定义的事件回调。Node.js 内部一个事件发布订阅器 EventEmitter,通过这个类,可以进行事件监听与发射。这个也是 Node.js 的核心模块,很多 Node.js 内部模块都是继承自它,或者引用了它。

Webpack 的本质:一种基于事件机制的编程范例,通过事件将一系列的的插件串联运行,最终完成 Webpack 的全流程。实现事件机制的核心是 Tapable 模块。Webpack 负责编译的 Compiler 和创建 Bundle 的 Compilation 都是继承自 Tapable。