又是好久好久好久没有写技术文章了,主要是都在忙业务,唉,年初过个春节,然后搞了618,上半年就过去了,下半年中秋国庆一过,双十一忙到昏厥,一年也就这样过去了。。。作为阿里的程序员,有时候感觉时间过得真的好快,不知道自己又留下了些什么,可能确实留下了很多东西,比如每年的繁忙,业务的发展,技术的进阶,但是都是存在于深深的脑海里,好好想了想,还是想写下来,但是有的业务耦合太强的又不敢写,所以只好自己提炼一下纯技术的东西,放在博客里。今天这是RxJS的第一篇文章,后续会出多篇,变成一个完整的RxJS学习系列。
一,RxJS是什么?
RxJS的全称叫做 Reactive Extension for JavaScript,Reactive Extension也可以简写为ReactiveX,至于Reactive Extension为什么要缩写为Rx而不是Re,我也不知道,总的意思就是JavaScript的Reactive Extension模式的实现,因为这只是一种实现的模式,和具体语言无关,所以除了RxJS,还有RxJava、Rx.NET、RxCpp、Rx.rb、RxPy等,这种。
在介绍Reactive Extension编程模式之前,我想先介绍两种其他的编程模式,就是响应式编程和函数式编程。
1,函数式编程
说起函数式编程,大家应该都不会陌生,顾名思义,函数式编程就是使用函数来解决问题的一种编程方式。用过Redux的同学应该都会明白,Redux就是纯函数式的编程,我们可以归纳一下Redux的几个特点:不修改老的state,而是返回新的state;入参一定的时候,出参数也一定;使用声明式函数;其实这就是纯函数最大的三个特点:1,不可变数据;2,纯函数;3,声明式。这里我就不做过多介绍了,有兴趣的可以下去自己查下资料看看。
2,响应式编程(Reactive Programming)
这个响应式编程呢,举个最简单的示例,就是excel函数,比如大家在使用excel的时候,需要计算一列数值的和,我们只需要选中这列之外的一个空白的区域,然后在公式部分输入“=”,再用鼠标选中你所想要计算的那一列或一部分的区域,那么你选中的这个区域里的数值,就会自动变成你想要计算的那一列的值了,与此同时,不管你这一列中,任意位置的值想要怎么变化,最终结果的值也是会同时进行改变的,这也就是说,结果区域的值会随着你那一列的区域中值的变化而作出“响应”,这就叫响应式编程。