
资源介绍
探索 40+构建异步事件驱动 Web 应用的实用方案
主要内容概览
全书共 10 章,围绕 RxJS 在实际开发中的应用展开,涵盖错误处理、UI 构建、动画系统、测试、性能优化、状态管理、PWA 开发、离线优先应用、实时应用和微服务等多个方面。
第 1 章:RxJS 中的错误和副作用处理
介绍处理 DOM 更新、网络请求和网络错误的方法,包括使用fromEvent、switchMap等操作符构建搜索功能,处理顺序和并行请求。
讲解调试 RxJS 流的技巧,如使用 Angular 拦截器实现网络日志记录。
探讨 HTTP 轮询(标准轮询和长轮询)和 WebSocket 连接的处理,包括心跳机制以确保连接完整性。
第 2 章:使用 RxJS 构建用户界面
实现多种交互组件,如基于 RxJS 的滑动解锁组件、进度条、渐进式图片加载、延迟加载标签内容、拖放功能、音频播放器、通知系统和无限滚动时间线。
每个组件都结合 RxJS 操作符处理用户输入和事件流,提升用户体验。
第 3 章:理解 RxJS 的响应式动画系统
利用 RxJS 创建动态交互动画,如模拟真实物理效果的弹跳球动画、流体粒子效果和组件状态过渡动画。
介绍如何将动画逻辑建模为值流,实现流畅的 60fps 动画,包括复杂序列编排和与其他事件的同步。
第 4 章:测试 RxJS 应用
讲解时间相关 RxJS 操作符的大理石测试(Marble Testing),使用 TestScheduler 控制虚拟时间。
介绍在 Angular 中模拟 HTTP 依赖、使用 Mock Service Worker(MSW)模拟 API 调用,以及测试 NgRx 状态管理的方法。
第 5 章:RxJS 性能优化
策略性选择 RxJS 操作符优化流,如使用debounceTime、distinctUntilChanged等减少不必要的计算和请求。
创建自定义 Core Web Vitals 性能监控系统,利用 Web Workers 结合 RxJS 处理繁重计算,避免阻塞主线程。
第 6 章:使用 RxJS 构建响应式状态管理系统
从零构建自定义客户端状态管理,包括定义状态、分发动作、应用 reducer 和处理副作用。
介绍在 Angular 中使用 NgRx 进行状态管理,包括配置存储、处理副作用、定义选择器等,以及结合 RxJS 实现类似 TanStack Query 的异步状态管理。
第 7 章:使用 RxJS 构建渐进式 Web 应用(PWA)
实现推送通知功能,包括生成 VAPID 密钥、请求订阅和从 API 发送通知。
利用 Dexie.js 和 RxJS 实现后台数据同步,使用 RxDB 构建离线就绪应用,确保在无网络时也能正常工作。
第 8 章:使用 RxJS 构建离线优先应用
探讨多种离线策略,如 Cache-First、Network-First、Stale-While-Revalidate、Cache-Network-Race 和乐观更新模式。
每种策略都结合 Angular 拦截器和 Cache API 实现,确保在离线或网络不稳定时的良好用户体验。
第 9 章:使用 RxJS 实现实时功能
实现实时数据可视化图表,通过 WebSocket 连接获取数据并动态更新图表。
构建现代聊天应用,支持消息发送、用户输入提示、在线状态显示和语音消息。
开发实时多人井字棋游戏,处理玩家连接、走棋和胜负判断。
第 10 章:使用 RxJS 构建响应式 NestJS 微服务
构建 resilient 的 REST API 微服务,应用指数退避和舱壁模式处理故障和并发。
利用 Kafka 进行响应式事件流处理,包括生产者、消费者的设置,消息缓冲和背压处理。
使用 gRPC 在 NestJS 中实现实时流,定义.proto 文件、配置微服务和处理流式更新。
其他内容
每章提供实践环节和额外资源,帮助读者深入学习和应用所学知识。
代码示例可从 GitHub 仓库获取,支持 Windows、macOS 和 Linux 系统的编译和运行。