这里是修真院前端小课堂,每篇分享文从
【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】
八个方面深度解析前端知识/技能,本篇分享的是:
【如何理解 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。
更多内容,可以加入IT交流群565734203与大家一起讨论交流
这里是技能树·IT修真院:https://www.jnshu.com,初学者转行到互联网的聚集地