RxJS操作符——数据流的结合
有时候我们需要的数据可能来自不同的数据流,但从多条数据流里分别取数据又比较难操作,所以RxJS为我们提供了一类将不同数据流结合到一条数据流的方法。
有时候我们需要的数据可能来自不同的数据流,但从多条数据流里分别取数据又比较难操作,所以RxJS为我们提供了一类将不同数据流结合到一条数据流的方法。
生命周期是在各行各业都广泛运用的概念,如同日月更替,生老病死,一个整体的运作必然离不开各个部分不断的更替重组。在软件开发中也是如此,程序的交互也必然离不开组件的创建,更新与删除。下面就来探讨React中生命周期的实现。
在很长一段时间里,前端都是用HTML代表内容,CSS代表样式,JS代表逻辑,三种语言分在三种文件里来组成页面。看起来是分而治之,实际上是把同一件事拆开了,不符合组件高内聚的设计原则。自从组件化出现后,一个文件里应该做同一件事的思想逐渐流行起来,这也是react的核心之一。样式,内容,逻辑都由JS构成并集中管理,实现真正的组件封装。那么如何通过JS去构造HTML内容,就是今天讨论的主题——JSX。
上文中我们学习了数据流的各种创建方法,从这篇文章开始着重介绍对数据流的各种转化操作,首先从过滤系列操作说起。可能对于某个数据流,我们根据业务场景不同需要从中挑选出合适的数据,类似于数组的 filter,RxJS中也提供了一系列的方法供我们快捷过滤。
我们给对象添加新的功能经常会使用继承,但继承存在着一些缺点。一方面会增强父子类之间的耦合性。另一方面,父类的细节对子类也是可见的,破坏了父类的封装性。装饰者模式提供了比继承更灵活的解决方案。和继承相比,它采取的是一种动态包装的方法添加新功能,在程序运行时再给对象根据需要添加职责。
了解了RxJS中的关键概念后,就需要去掌握各种各样的操作数据流的操作符了。这篇文章从最初的操作符开始分析——创建相关。
在现实生活中,万物之间都有着复杂的联系。程序设计中也是一样。当整个应用架构慢慢变大时,不可避免的会创建各种各样的对象。而各个对象之间往往存在一定联系,当改动一个对象是可能无意间就影响了其他对象的功能。如果意识到部分对象之间有复杂的关系,就可以考虑使用中介者模式来管理。
现在我们已经了解Observable和Observer了,数据来自于Observable,流入Observer对数据处理,这样单点对单点的处理方式很简洁,但似乎有些过于单一。有时候我们希望同一份数据能在多个地方被用到,这就是数据流的桥梁——Subject发挥作用的地方了。Subject既可以用作Observer,也可以用作Observable。
职责链模式将多个有机会处理请求的对象串联起来,将请求者和接受者解耦并将请求从链的入口传入,直到有一个对象能处理它为止。
前面我们谈到一个数据流的生命周期分为创建,订阅,执行,完成四个部分。在创建时,我们传入了一个订阅函数作为订阅时数据流出的逻辑。这一节我们就来具体谈谈执行订阅逻辑时涉及到的概念——Observer和Subscription。