深入浅出RxJS (实战)

深入浅出RxJS (实战)
作者:
程墨
语言:
中文
类型:
EPUB
页数:
12,397页
大小:
8.29 MB
出版社:
北京华章图文信息有限公司
出版时间:
2018-04-01
ISBN:
9787111596646
分类:

内容简介

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

作者简介

资深架构师,曾任职于摩托罗拉、雅虎和微软,云鸟配送平台联合创始人,目前服务于美国视频服务公司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 Scheduler的调度作用265
11.2 RxJS提供的Scheduler268
11.3 Scheduler的工作原理269
11.3.1 单线程的JavaScript270
11.3.2 调用栈和事件循环272
11.3.3 Scheduler如何工作275
11.4 支持Scheduler的操作符279
11.4.1 创造类和合并类操作符279
11.4.2 observeOn281
11.4.3 subscribeOn282
11.5 本章小结283
第12章 RxJS的调试和测试284
12.1 调试方法284
12.1.1 无用武之地的Debugger285
12.1.2 利用日志来调试286
12.1.3 利用do来插入调试代码287
12.1.4 改进的日志调试方法290
12.1.5 数据流依赖图291
12.1.6 弹珠图292
12.2 单元测试293
12.2.1 单元测试的作用294
12.2.2 RxJS天生适合单元测试297
12.2.3 单元测试的结构298
12.2.4 RxJS单元测试中的时间303
12.2.5 操纵时间的TestScheduler306
12.2.6 可测试性代码325
12.3 本章小结340
第13章 用RxJS驱动React341
13.1 React简介341
13.1.1 为什么选择React341
13.1.2 React如何工作343
13.2 简单的React应用Counter350
13.3 利用RxJS管理React状态356
13.3.1 利用Subject作为桥梁356
13.3.2 用高阶组件连接RxJS359
13.4 本章小结365
第14章 Redux和RxJS结合366
14.1 Redux简介366
14.1.1 Redux的工作方式367
14.1.2 构建Redux应用368
14.2 用RxJS实现Redux372
14.3 Redux和RxJS比较374
14.4 Redux-Observable:Redux和RxJS的结合375
14.5 本章小结380
第15章 RxJS游戏开发381
15.1 breakout的历史381
15.2 程序设计383
15.3 用RxJS实现breakout385
15.4 本章小结397
结语398

下载权限
查看
  • 免费下载
    评论并刷新后下载
    登录后下载
  • {{attr.name}}:
您当前的等级为
登录后免费下载登录 小黑屋反思中,不准下载! 评论后刷新页面下载评论 支付以后下载 请先登录 您今天的下载次数(次)用完了,请明天再来 支付积分以后下载立即支付 支付以后下载立即支付 您当前的用户组不允许下载升级会员
您已获得下载权限 您可以每天下载资源次,今日剩余
免责申明
1. 本站分享的所有书籍均来源于自互联网,我们只进行收集整理,并不对书籍内容进行更改。
2. 部分书籍中可能有书籍压制者放置的广告,这并不是本站所为,请注意甄别。
3. 我们分享这些书籍,纯粹是出于知识分享的热情,以及对互联网分享精神的高度认同和践行,没有任何商业目的。
4. 本站分享的所有书籍,仅供个人学习研究使用,请勿用于任何商业用途,否则产生的一切法律纠纷与本站无关。
5. 如果这些书籍让你有所收获,在条件允许的情况下,请一定购买正版书籍,这是对创作者最好的支持。
6. 如果您是此书籍的版权所有者,且您不希望此作品出现在本站,请联系我们,我们将在收到您的请求后48时间内予以删除。

📖 支持知识自由流动

这本书的持续提供,需要服务器运行成本支持(约 3.7元/小时

给TA打赏
共{{data.count}}人
人已打赏
📱 超值套餐推荐
19元180G流量卡 · 运营商正规授权
全国通用 · 长期有效 · 运营商可查 · 随时可退
自助办理 →
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索