历时 49 篇,从环境搭建写到 CDK 的最后一个模块,这个系列终于收官。最后一篇不写新知识,做三件事:画一张全系列知识地图,回顾贯穿始终的思想演进,给出继续深入的方向与资源。
全系列知识地图
mindmap
root((Angular 22 全系列))
基础与工具链
01 概述与全景
02 前端框架对比
03 快速开始
04 CLI
05 angular.json
06 编译器与 Ivy
模板与指令
07 绑定与事件
08 新控制流 if/for/switch/defer
09 @let
10 ng-template
11 属性型指令
12 结构型指令
组件机制
13 生命周期
14 查询子组件与 DOM
15 动态组件
16 对比 Web Components
17 对比 Shadow DOM
依赖注入
18 DI 基础
19 DI 进阶
30 EventManager
响应式与数据
20 变更检测
21 Signals
22 Signals 与 RxJS
23 HttpClient 与 resource
24 路由
25 Signal Forms
工程与生态
26 动画
27 内存泄漏
28 NgModule 与 standalone
29 组件库发布
31 代码风格
32 Lint 与格式化
33 版本演进
34 局限性
35 综合实战
Material 与 CDK
36 Material 起步与主题
37 M3 主题定制
38 FormField
39 Icon 与 Tooltip
40 Overlay
41 Portal
42 DragDrop
43 虚拟滚动
44 Table 与 DataSource
45 无障碍焦点管理
46 ListKeyManager
47 Layout 与 Observers
收官
48 杂项合集
49 总结与路线图
如果只允许记一条主线:模板(07-12)→ 组件(13-17)→ DI(18-19)→ 响应式(20-23)→ 组件库(36-47)。其余篇目都挂在这条主干上反复回访。
核心思想的演进
回头看,这 49 篇其实在讲一个主题:Angular 如何把”框架隐式做的事”变成”开发者显式声明的”。
| 维度 | 旧范式 | v22 范式 | 对应篇章 |
|---|---|---|---|
| 变更检测 | Zone.js 猜测”哪里变了” | Signals 精确追踪,Zoneless 默认 | 20、21 |
| 模板控制流 | *ngIf/*ngFor 指令 | @if/@for/@defer 原生语法 | 08 |
| 依赖注入 | @Injectable + 构造参数 | @Service() + inject() | 18、19 |
| 数据获取 | 手拼 RxJS 流 | resource()/httpResource() 声明式 | 23 |
| 表单 | RxJS 驱动的 Reactive Forms | Signal Forms 信号驱动 | 25 |
| 模块组织 | NgModule | standalone 默认 | 28 |
| 测试 | Karma | Vitest(官方迁移工具) | 33 |
这套演进的方向高度一致:更少的隐式魔法、更细的依赖粒度、更贴近语言的表达。signals 是地基,zoneless 是信号成熟后的红利,新控制流与 Signal Forms 是上层建筑。理解了这一点,未来任何新 API(比如即将稳定的 @boundary 错误边界)都能快速定位它在体系中的位置:它是把”组件树错误传播”这件隐式的事显式化。
三个值得内化的心智模型
- 生产者-消费者图:signal/computed/effect 构成一张图(第 21 篇),所有”为什么没更新/为什么更新了”都能在图上找到答案,DevTools 的信号图就是它的可视化
- 注入树与作用域:DI 是一棵可覆盖的树(第 18、19 篇),组件级 provider、
Injector.create私有注入器、Portal 动态内容都在这棵树上开枝散叶 - 协议优于实现:CDK 的每个模块都是”定义协议 + 默认实现”——DataSource 定义 connect/disconnect、PortalOutlet 定义 attach/detach、VirtualScrollStrategy 定义测量契约。学会读协议,就学会了读一切组件库
进阶方向
SSR 深入
系列第 33 篇只覆盖了增量 hydration 的默认行为。深入方向:流式 SSR 与水合错误的定位、provideServerRendering({ maxResponseBodySize }) 与缓存策略、ServerRoute 与边缘渲染、水合性能指标(LCP/INP)调优。这也是 Angular 官方当前投入最大的领域之一。
微前端与大型应用
Module Federation 与 Angular 的组合、Angular Elements 做跨技术栈嵌入(第 16、48 篇)、monorepo 下的库拆分与版本治理(第 29 篇的进阶)、路由级 lazy loading 与预取策略。适合在业务体量上来后专项学习。
AI 工具链
v22 生态的新变量:npx skills add https://github.com/angular/skills 引入官方最佳实践技能;chrome-devtools-mcp 让 AI 读取 DevTools 的组件树与信号图;实验性的 WebMCP(declareExperimentalWebMcpTool)把运行中的应用状态暴露给 AI。建议把这三种工具跑一遍 demo——它们改变的是”调试与查证”的工作流,而非编码本身。
质量工程
补齐系列着墨较少的一环:Vitest 单测(migrate-karma-to-vitest 迁移存量)、TestBed.getLastFixture() 辅助的测试工具链、Playwright E2E、a11y 自动化审计(axe-core)。CDK 三篇(45-47)的无障碍知识在这里能落成 CI 门禁。
给不同读者的路线建议
| 读者画像 | 建议路径 | 时间预估 |
|---|---|---|
| Angular 零基础 | 01 → 17 顺序精读,配套官方 tutorial 上手 | 4-6 周 |
| 有其他框架经验 | 07-12(模板差异)、18-21(DI 与 Signals)、28(standalone)重点补 | 2 周 |
| 迁移老项目 | 20-21(变更检测转型)、25(Signal Forms)、28(去 NgModule)、33(版本演进) | 3-4 周 |
| 组件库/设计系统作者 | 15-17、29、36-47(Material 与 CDK 全部) | 6 周+ |
| 架构师/团队负责人 | 22-23(数据层选型)、26-27、31-35、48(工程化与性能)、49(本文) | 2 周 |
三个反复出现的提醒:学新特性先读 changelog 与 RFC 确认稳定级别(实验性 API 可能调整形态);迁移老代码优先跑官方 schematics 而不是手改;所有性能结论用 Profiler 数据说话,不要凭版本直觉。
学习资源
- 官方文档与教程:https://angular.dev(第一手事实基准,含 errors 手册与 API 参考)
- Angular Blog(版本发布说明):https://blog.angular.dev
- Ninja Squad(Angular 与测试深度教程):https://ninja-squad.com
- Angular CDK/Material 源码:https://github.com/angular/components(读协议的最佳教材)
- Angular 官方 skills 仓库:https://github.com/angular/skills
- 本系列第 35 篇:把全系列知识串成一个完整应用的实战
写在最后
框架教程会过时,方法论不会:先读官方文档建立事实基准,再用 DevTools 观察真实行为,最后回到协议与心智模型消化——这套循环适用于 Angular v22,也适用于它的下一个十年。感谢读到这里,欢迎在全系列任意篇章下留言交流。
系列导航
- 上一篇:Angular 全家桶 48:大杂烩——杂项技巧与经验合集
- 回到系列开篇:Angular 22+ 教程 1:开篇与全景
- 全系列知识地图:见上文 mermaid mindmap,按”基础与工具链 → 模板与指令 → 组件机制 → 依赖注入 → 响应式与数据 → 工程与生态 → Material 与 CDK”七组回访
- 相关阅读:版本演进 · 综合实战 · 杂项合集