如何理解 RxJS?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jnshu_it/article/details/84936039

这里是修真院前端小课堂,每篇分享文从

【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】

八个方面深度解析前端知识/技能,本篇分享的是:

【如何理解 RxJS?     】

一.背景介绍

rxjs全名Reactive Extensions for JavaScript,Javascript的响应式扩展, 响应式的思路是把随时间不断变化的数据、状态、事件等等转成可被观察的序列(Observable Sequence),然后订阅序列中那些Observable对象的变化,一旦变化,就会执行事先安排好的各种转换和操作 **rxjs适用于异步场景,即前端

二.知识剖析

RXJS · 流 STREAM RxJS 是 Reactive Extensions for JavaScript 的缩写,起源于 Reactive Extensions,是一个基于可观测数据流在异步编程应用中的库。RxJS 是 Reactive Extensions 在 javascript 上的实现,而其他语言也有相应的实现,如 RxJava、RxAndroid、RxSwift 等。学习 RxJS,我们需要从可观测数据流(Streams)说起,它是 Rx 中一个重要的数据类型。 下雨天时,雨滴随时间推移逐渐产生,下落时对水面产生了水波纹的影响,这跟 Rx 中的流是很类似的。而在 Web 中,雨滴可能就是一系列的鼠标点击、键盘点击产生的事件或数据集合等等。

观察者模式在 Web 中最常见的应该是 DOM 事件的监听和触发。 订阅:通过 addEventListener 订阅 document.body 的 click 事件。 发布:当 body 节点被点击时,body 节点便会向订阅者发布这个消息

迭代器模式 迭代器模式可以用 JavaScript 提供了 Iterable Protocol 可迭代协议来表示。Iterable Protocol 不是具体的变量类型,而是一种可实现协议。JavaScript 中像 Array、Set 等都属于内置的可迭代类型,可以通过 iterator 方法来获取一个迭代对象,调用迭代对象的 next 方法将获取一个元素对象

RXJS 的观察者 + 迭代器模式 RxJS 中含有两个基本概念:Observables 与 Observer。Observables 作为被观察者,是一个值或事件的流集合;而 Observer 则作为观察者,根据 Observables 进行处理。 Observables 与 Observer 之间的订阅发布关系(观察者模式) 如下: 订阅:Observer(对象) 通过 Observable 提供的 subscribe() 方法订阅 Observable。 发布:Observable(函数) 通过回调 onNext 方法向 Observer 发布事件。

目录

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

rxjs全名Reactive Extensions for JavaScript,Javascript的响应式扩展, 响应式的思路是把随时间不断变化的数据、状态、事件等等转成可被观察的序列(Observable Sequence),然后订阅序列中那些Observable对象的变化,一旦变化,就会执行事先安排好的各种转换和操作 **rxjs适用于异步场景,即前端

RXJS 基础实现原理简析:

观察者模式

三.常见问题

RXJS 基础实现

四.解决方案

创建 OBSERVABLE 

RxJS 提供 create 的方法来自定义创建一个 Observable,可以使用 onNext 来发出流。

RXJS 的观察者 + 迭代器模式

RxJS 中含有两个基本概念:Observables 与 Observer。Observables 作为被观察者,是一个值或事件的流集合;而 Observer 则作为观察者,根据 Observables 进行处理。

Observables 与 Observer 之间的订阅发布关系(观察者模式) 如下:

订阅:Observer(对象) 通过 Observable 提供的 subscribe() 方法订阅 Observable。

发布:Observable(函数) 通过回调 onNext 方法向 Observer 发布事件。

3.常见问题

RXJS 基础实现

创建 OBSERVABLE

RxJS 提供 create 的方法来自定义创建一个 Observable,可以使用 onNext 来发出流。

var Observable = Rx.Observable.create(observer => {

observer.onNext(2);

observer.onCompleted();

return () => console.log('disposed');

});

RXJS 的观察者 + 迭代器模式

RxJS 中含有两个基本概念:Observables 与 Observer。Observables 作为被观察者,是一个值或事件的流集合;而 Observer 则作为观察者,根据 Observables 进行处理。

Observables 与 Observer 之间的订阅发布关系(观察者模式) 如下:

订阅:Observer(对象) 通过 Observable 提供的 subscribe() 方法订阅 Observable。

发布:Observable(函数) 通过回调 onNext 方法向 Observer 发布事件。

3.常见问题

RXJS 基础实现

创建 OBSERVABLE

RxJS 提供 create 的方法来自定义创建一个 Observable,可以使用 onNext 来发出流。

var Observable = Rx.Observable.create(observer => {

observer.onNext(2);

observer.onCompleted();

return () => console.log('disposed');

})

 创建 OBSERVER Observer 

可以声明 next、err、complete 方法来处理流的不同状态。

最后将 Observable 与 Observer 通过 subscribe 订阅结合起来。 var subscription = Observable.subscribe(Observer); 

五.代码实战

暂无

六.拓展思考

什么情况下考录使用RxJS

信息量较大,导致查询较复杂,其中有部分数据是可复用的,比如说,这么一大片面板,可能几百条任务,但是其中人员可能就20个,所有参与者都在这20个人里面。如果要做一些比较实时的交互,会比较麻烦,比如说,某个用户修改了头像,某个标签定义修改了文字,都会需要去立刻更新当前界面所有的引用部分。

七.参考文献

构建流式应用—RxJS详解

https://blog.csdn.net/zhoulu001/article/details/53072604

八更多讨论

1。我们任务用到rx吗?

我们任务用不到rx.一般是angular或者react 需要用到

2

什麼是 Observable 

Observable 就像是一個序列,裡面的元素會隨著時間推送。

3什么是subject

首先 Subject 可以拿去订阅 Observable(source) 代表他是一个 Observer,同时 Subject 又可以被 Observer(observerA, observerB) 订阅,代表他是一个 Observable。

PPT链接 视频链接

更多内容,可以加入IT交流群565734203与大家一起讨论交流

这里是技能树·IT修真院:https://www.jnshu.com,初学者转行到互联网的聚集地

猜你喜欢

转载自blog.csdn.net/jnshu_it/article/details/84936039