rxjs和响应式编程

1 篇文章 0 订阅

1、什么是RxJS

RxJS(响应式扩展的 JavaScript 库)是一个使用可观察对象进行响应式编程的库。

RxJS是一个js库,它的目的是帮助我们进行响应式编程,那么如何进行响应式编程,使用可观察对象。

当你在js中引入RxJS库,就可以在js中进行使用可观察对象进行响应式编程。

 

2、什么是响应式编程

响应式编程是一种通过异步数据流(可观察对象)来构建事务(功能,函数)关系的编程模型(范式)。

响应式编程的目的是为了构建事务之间的关系。

为什么要构建事务之间的关系?

复杂的业务逻辑拆分成一个个小功能后,功能与功能之间存在一定关系。这是业务需求决定的。

举例:登录之后,需要先获取token,再通过应用初始化方法获得应用信息,用户信息,全局配置等,再通知需要这些信息的组件信息已初始化(变化),让他们进行响应式变化(更新),最后导航到首页。

如何构建事务之间的关系?

通过异步数据流(可观察对象)

在面向对象编程语言中,响应式编程通常以观察者模式的扩展呈现。


3、观察者模式

观察者模式是一种设计模式。

它有一个主体(subject)对象,负责维护依赖项(observer)列表,当状态变化时通知他们。

它和发布/订阅模式很像,但不完全一样。

 

4、观察者模式中设计的概念

使用可观察对象来传递值

观察者定义了收到值的处理器

订阅者函数用来获取或生成那些要发布的值或消息

订阅对象

 

5、观察者模式中的动作

订阅:当观察者订阅可观察对象时,执行订阅者函数(订阅者函数会发布(通过http请求获得或某些条件生成)值,可观察对象会传递值,观察者会消费(使用)值)

解除订阅:解除观察者与可观察对象之间的关系,可观察对象中的订阅者函数不再执行。

 

6、工作模型

流水线工作模型(太懒了,不想画图,描述一下吧)

货物(数据)放到流水线(可观察对象)上,流水线上的工人(操作符)操作货物,消费者(观察者)使用流水线下来的货物。

 

7、其他概念

操作符是基于可观察对象构建的对集合进行操作的函数

pipe函数负责链接操作符

subject是一个特殊的可观察对象,它将值广播给订阅了它的观察者。subject既是一个可观察对象,又是一个观察者。

 

8、命名规范

可观察对象以“$”符号结尾

可观察对象传递的最近一个值,与可观察对象同名,但不带“$”后缀。

 

9、项目实践

实时更新项目配置(举例:在a页面关闭某种支付方式后,在其他页面不再显示该支付方式),实时组件通信(页面编辑器)等

解决方案:使用EventEmitter或Subject(EventEmitter是Subject的派生类)

登录之后,需要先获取token,然后在全局服务中通过应用初始化方法取到应用信息,用户信息和全局配置之后,然后发布相关类型的消息,需要使用信息的组件接收到消息之后,先进行消息过滤(只过滤自己需要的消息),然后从消息中获得需要的数据,并更新组件的模型。在某一页面修改全局配置后,通过请求告知后端存储该配置,然后发布消息通知其他组件该信息已修改,订阅了该消息的组件会自动获取最新的配置并修改。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值