Angular 课程大纲
基础入门
- Angular 简介和特性
- TypeScript 基础
- 环境搭建 (Node.js, npm, Angular CLI)
- 第一个 Angular 应用
- Angular 项目结构
组件基础
- 组件创建和使用
- 模板语法
- 数据绑定
- 生命周期钩子
- 组件通信 (Input 和 Output)
指令
- 内置指令 (ngIf, ngFor, ngSwitch)
- 属性指令
- 结构指令
- 自定义指令
服务和依赖注入
- 服务创建和使用
- 依赖注入原理
- 提供者配置
- 服务的作用域
路由
表单处理
- 模板驱动表单
- 响应式表单
- 表单验证
- 自定义验证器
- 动态表单
HTTP 客户端
- HttpClient 模块
- 发送请求和处理响应
- 拦截器
- 错误处理
- 缓存策略
RxJS 和响应式编程
- Observable 和 Observer
- 操作符
- Subject 类型
- 错误处理和重试
- 状态管理与 RxJS
模块化开发
- NgModule 详解
- 特性模块
- 共享模块
- 核心模块
- 模块懒加载
组件进阶
- 内容投影
- 动态组件
- 组件样式封装
- Shadow DOM
- 自定义元素
变更检测
- 变更检测原理
- OnPush 策略
- 手动触发变更检测
- 性能优化技巧
动画
- 动画状态和转换
- 关键帧动画
- 路由动画
- 复杂动画序列
国际化 (i18n)
- 文本翻译
- 日期、数字和货币格式化
- 运行时语言切换
- AOT 编译和国际化
测试
- 单元测试 (Jasmine, Karma)
- 组件测试
- 服务测试
- 端到端测试 (Protractor)
Angular Universal (SSR)
PWA 和离线功能
- Service Worker
- App Shell
- 推送通知
- 离线数据同步
状态管理
- NgRx 基础
- 操作、减速器和选择器
- 效果 (Effects)
- NGXS 和 Akita 简介
性能优化
- AOT 编译
- 树摇 (Tree Shaking)
- 延迟加载
- 预加载策略
- 内存泄漏防治
安全性
- 跨站脚本 (XSS) 防御
- CSRF 保护
- 内容安全策略 (CSP)
- 认证和授权实践
高级主题
- 自定义构建过程
- Angular 库开发
- WebAssembly 集成
- Angular Elements
DevOps 和部署
- CI/CD 管道设置
- Docker 容器化
- 云平台部署 (如 Firebase, Heroku)
- 监控和日志
项目实战
- 企业级应用开发
- 实时数据仪表板
- 移动优先的 Web 应用
Angular 生态系统
- UI 组件库 (Material, PrimeNG)
- 开发工具和 IDE 插件
- Angular 社区和资源
- 持续学习和职业发展