2019-07-28 Rx学习(一)

RxJS是一套藉由Observable sequences来组合非同步行为和事件基础程序的Library!

可以把RxJS 想成处理非同步行为的Lodash。

这也被称为Functional Reactive Programming,更切确地说是指Functional Programming 及Reactive Programming 两个编程思想的结合。

如果要用一句话来总结Functional Programming,那就是用function来思考我们的问题,以及撰写程式

Reactive Programming简单来说就是当变数或资源发生变动时,由变数或资源自动告诉我发生变动了

这句话看似简单,其实背后隐含两件事

当发生变动=> 非同步:不知道什么时候会发生变动,反正变动时要跟我说
由变数自动告知我=> 我不用写通知我的每一步程式码

由于最近很红的Vue.js 底层就是用Reactive Programming 的概念实作,让我能很好的举例,让大家理解什么是Reactive Programming!

当我们在使用vue开发时,只要一有绑定的变数发生改变,相关的变数及画面也会跟着变动,而开发者不需要写这其中如何通知发生变化的每一步程式码,只需要专注在发生变化时要做什么事,这就是典型的Reactive Programming (记得必须是由变数或资源主动告知!)

Vue.js在做two-ways data binding是透过ES5 definedProperty的getter/setter。每当变数发生变动时,就会执行getter/setter从而收集有改动的变数,这也被称为依赖收集。

Rx 基本上就是上述的两个观念的结合,这个部份读者在看完之后的文章,会有更深的体悟。


你可能感兴趣的:(2019-07-28 Rx学习(一))