kindle电子书

资源下载,尽在我的书库!
首页 > kindle电子书库 > 典藏频道 > 工农林医、科学科普、IT网络

深入浅出RxJS (实战)

  • 作者:[中] 程墨
  • 体积:8.13 MB
  • 语言:中文
  • 日期:2019-05-21
  • 推荐:

简介:RxJS是Reactive Extension这种模式的JavaScript语言实现,通过学习了解RxJS,你将打开一扇通往全新编程风格的大门。当然,我们学习RxJS,并不是因为RxJS是一项炫酷的技术,也不是因为RxJS是一个最新的技术。在技术的道路上,如果只是追逐“炫酷”和“最新”,肯定是要吃苦头的,因为这是舍本逐末。

电子书详细介绍

TAG():

 RxJS是Reactive Extension这种模式的JavaScript语言实现,通过学习了解RxJS,你将打开一扇通往全新编程风格的大门。当然,我们学习RxJS,并不是因为RxJS是一项炫酷的技术,也不是因为RxJS是一个最新的技术。在技术的道路上,如果只是追逐“炫酷”和“最新”,肯定是要吃苦头的,因为这是舍本逐末。

本书系统讲解RxJS响应式编程的技术原理与应用。第1章剖析函数响应式编程的基本概念,通过简单RxJS代码引入函数响应式编程,并与传统编程方式对比,解释这种编程范式的优势,以及这种范式形成的历史。第2章介绍学习RxJS必须掌握的基本概念,包括数据流、操作符和观察者模式。第3~9章介绍RxJS的各种操作符,以及如何选择恰当的操作符来完成不同的任务。第10章介绍RxJS如何实现多播的方式。第11章介绍实现调度Scheduler的作用、原理与使用。第12章介绍如何调试和测试RxJS相关代码,写出高可测试性代码。第13章介绍如何在React应用中使用RxJS,提高代码质量。第14章介绍Redux与RxJS的组合应用,发挥两者的共同优势。第15章介绍一个综合案例,用RxJS实现网页游戏Breakout,并剖析RxJS如何实现动画和绘图。

编辑推荐

软件开发中有什么老问题?技术发展迅速,用户的需求增加更快,软件的代码库也会随需求增长快速膨胀。 
在这种情况下,如何保证代码质量?如何控制代码的复杂度?如何维持代码的可维护性?这些就成了软件开发的大问题。业界的同仁们为了解决这些老问题做了各种努力,函数式编程和响应式编程就是在实践中被证明行之有效的两种方法。 
RxJS兼具函数式和响应式两种编程方式的特点,RxJS擅长处理异步操作,因为它对数据采用“推”的处理方式,当一个数据产生的时候,被推送给对应的处理函数,这个处理函数不用关心数据是同步产生的还是异步产生的,这样就把开发者从命令式异步处理的枷锁中解放了出来。 
本书由浅入深地讲解RxJS,不仅介绍所有操作符的功能,而且讲解实际应用与利弊,是提升开发内功的好教程。

名人推荐

互联网Web技术发展很快,同时也就要求开发者能够快速掌握新兴的技术,如果有浅显易懂的书来指导,就会事半功倍。这本书就浅显易懂,读者不仅从书中可以获得对RxJS的全面认识,更能了解响应式编程的巨大潜力。 
——诸葛越,Hulu公司全球研发副总裁,中国研发中心总经理

作者简介

程墨 架构师,曾任职于摩托罗拉、雅虎和微软,云鸟配送平台联合创始人,目前服务于美国视频服务公司Hulu。

 

目录

目录 Contents 
前言 
第1章 函数响应式编程1 
1.1 一个简单的RxJS例子1 
1.2 函数式编程5 
1.2.1 什么是函数式编程5 
1.2.2 为什么函数式编程最近才崛起11 
1.2.3 函数式编程和面向对象编程的比较13 
1.3 响应式编程14 
1.4 Reactive Extension15 
1.5 RxJS是否是函数响应式编程16 
1.6 函数响应式编程的优势17 
1.7 本章小结18 
第2章 RxJS入门19 
2.1 RxJS的版本和运行环境19 
2.2 Observable和Observer24 
2.2.1 观察者模式24 
2.2.2 迭代器模式25 
2.2.3 创造Observable26 
2.2.4 跨越时间的Observable28 
2.2.5 永无止境的Observable29 
2.2.6 Observable的完结30 
2.2.7 Observable的出错处理31 
2.2.8 Observer的简单形式32 
2.3 退订Observable33 
2.4 Hot Observable和Cold Observable35 
2.5 操作符简介37 
2.6 弹珠图39 
2.7 本章小结41 
第3章 操作符基础42 
3.1 为什么要有操作符42 
3.2 操作符的分类44 
3.2.1 功能分类45 
3.2.2 静态和实例分类46 
3.3 如何实现操作符49 
3.3.1 操作符函数的实现49 
3.3.2 关联Observable53 
3.3.3 改进的操作符定义55 
3.3.4 lettable/pipeable 操作符60 
3.4 本章小结68 
第4章 创建数据流69 
4.1 创建类操作符70 
4.2 创建同步数据流70 
4.2.1 create:毫无神奇之处71 
4.2.2 of:列举数据71 
4.2.3 range:指定范围73 
4.2.4 generate:循环创建74 
4.2.5 repeat:重复数据的数据流75 
4.2.6 三个极简的操作符:empty、never和throw78 
4.3 创建异步数据的Observable对象80 
4.3.1 interval和timer:定时产生数据80 
4.3.2 from:可把一切转化为Observable82 
4.3.3 fromPromise:异步处理的交接84 
4.3.4 fromEvent85 
4.3.5 fromEventPattern87 
4.3.6 ajax88 
4.3.7 repeatWhen89 
4.3.8 defer91 
4.4 本章小结92 
第5章 合并数据流93 
5.1 合并类操作符94 
5.1.1 concat:首尾相连94 
5.1.2 merge:先到先得快速通过96 
5.1.3 zip:拉链式组合99 
5.1.4 combineLatest:合并最后一个数据102 
5.1.5 withLatestFrom109 
5.1.6 解决glitch112 
5.1.7 race:胜者通吃115 
5.1.8 startWith115 
5.1.9 forkJoin117 
5.2 高阶Observable118 
5.2.1 高阶Observable的意义119 
5.2.2 操作高阶Observable的合并类操作符120 
5.2.3 进化的高阶Observable处理124 
5.3 本章小结128 
第6章 辅助类操作符129 
6.1 数学类操作符129 
6.1.1 count:统计数据个数130 
6.1.2 max和min:最大最小值130 
6.1.3 reduce:规约统计131 
6.2 条件布尔类操作符133 
6.2.1 every134 
6.2.2 find和findIndex135 
6.2.3 isEmpty137 
6.2.4 defaultIfEmpty138 
6.3 本章小结138 
第7章 过滤数据流139 
7.1 过滤类操作符的模式140 
7.1.1 filter141 
7.1.2 first142 
7.1.3 last144 
7.1.4 take一族操作符145 
7.1.5 计时的点击计数网页程序150 
7.1.6 skip151 
7.1.7 skipWhile和skipUntil151 
7.2 回压控制152 
7.2.1 throttle和debounce154 
7.2.2 auditTime和audit164 
7.2.3 sampleTime和sample166 
7.2.4 根据数据序列做回压控制168 
7.3 其他过滤方式171 
7.3.1 ignoreElements172 
7.3.2 elementAt172 
7.3.3 single173 
7.4 本章小结173 
第8章 转化数据流174 
8.1 转化类操作符174 
8.2 映射数据175 
8.2.1 map176 
8.2.2 mapTo177 
8.2.3 pluck178 
8.3 缓存窗口:无损回压控制179 
8.3.1 windowTime和bufferTime180 
8.3.2 windowCount和bufferCount183 
8.3.3 windowWhen和bufferWhen184 
8.3.4 windowToggle和buffer-Toggle185 
8.3.5 window和buffer186 
8.4 高阶的map188 
8.4.1 concatMap189 
8.4.2 mergeMap192 
8.4.3 switchMap193 
8.4.4 exhaustMap195 
8.4.5 高阶的MapTo195 
8.4.6 expand196 
8.5 数据分组196 
8.6 累计数据200 
8.6.1 scan200 
8.6.2 mergeScan201 
8.7 本章小结203 
第9章 异常错误处理204 
9.1 异常处理不可避免204 
9.2 异常处理的难点206 
9.2.1 try/catch只支持同步运算207 
9.2.2 回调函数的局限207 
9.2.3 Promise的异常处理209 
9.3 RxJS的异常处理212 
9.3.1 catch214 
9.3.2 retry216 
9.3.3 retryWhen217 
9.3.4 finally220 
9.4 重试的本质221 
9.5 本章小结223 
第10章 多播225 
10.1 数据流的多播225 
10.2 Hot和Cold数据流差异228 
10.3 Subject230 
10.3.1 两面神Subject230 
10.3.2 用Subject实现多播233 
10.3.3 makeHot 操作符234 
10.3.4 Subject不能重复使用235 
10.3.5 Subject可以有多个上游237 
10.3.6 Subject的错误处理239 
10.4 支持多播的操作符241 
10.4.1 multicast241 
10.4.2 publish253 
10.4.3 share255 
10.5 高级多播功能257 
10.5.1 publishLast和Async-Subject258 
10.5.2 pubishReplay和Replay-Subject259 
10.5.3 publishBehavior和BehaviorSubject262 
10.6 本章小结263 
第11章 掌握时间的Scheduler265 
11.1 Schedu

我来说两句

本书评论

共有 0 条评论
图书分类
我的书库手机端
帮助中心
会员登录 ×
新用户注册 ×