0%

rxjs-introduction

今天来一篇RxJS的科普。

什么是RxJS

先看RxJS这个词,RxJS = Rx + JS,JS就是Javascript,那么Rx又是什么呢?

Rx = Reactive extension, 最早是由微软开发的一套软件库,用于处理异步数据流和事件流。后来,ReactiveX被移植到了多种编程语言中,如RxJS(Javascript)、RxJava(Java)、RxSwift(Swift)等。

下面是Wikipedia对ReactiveX的定义:
ReactiveX is an API for asynchronous programming with observable streams。

RxJS就是Rx的JavaScript版本。

RxJS的核心概念

Rx中使用了两个设计模式,观察者模式和迭代器模式。Rx还大量使用了函数式编程的思想。

Observable

这是RxJS中最终要的概念,没有之一,Observable,顾名思义,就是可观察对象,我们看一个现实中的例子,你在看风景,那么风景就是一个Observable,你在观察风景,风景发生了变化,你就会感知到,这就是Observable的概念。

Observer

Observer - 观察者,还是以现实中的例子来解释,你在看风景,你就是一个Observer。

Subscription

Subscription - 订阅,订阅是联系Observable和Observer的桥梁,我们常说,Observable发生变化时,Observer会收到通知,那么Observer如何收到通知呢?就是通过订阅机制来实现的。

Operators

Operators - 操作符,RxJS提供了许多操作符,用于对Observable进行操作,比如mapfilterreduce等。Operators都是纯函数,它们不会改变原始的Observable,而是返回一个新的Observable。

Subject

Subject - 主题,Subject是一种特殊的Observable,它允许将值多播给多个Observer。也就是说,它是用来实现多播的,同时,Subject也是Observer。

Scheduler

Scheduler - 调度器,RxJS提供了调度器,用于控制Observable何时开始发送通知。

References

  1. https://en.wikipedia.org/wiki/ReactiveX
  2. https://rxjs.dev/guide/overview