获取资料

基于TypeScript从零重构axios

基于TypeScript从零重构axios

课程目录:

第1章 课程介绍[悄悄告诉你,一定要看,有福利]

介绍本课程的主要内容,通过本次课程可以学到的知识点,学习方法介绍。

1-1 课程介绍

第2章 初识 Typescript[初次体验]

教会同学们安装 Typescript 编译器,以及通过编写第一个 TypeScript 程序认识 TypeScript。

2-1 安装 TypeScript

2-2 编写第一个 TypeScript 程序

第3章 Typescript 类型系统[必备基础,牢固掌握]

参考官方文档,主讲 TypeScript 的一些重要的语法和概念,并配合一些具体的代码示例辅助说明,帮助同学们了解 TypeScript 的常见用法,为之后的实战打下基础。

3-1 基础类型(上)

3-2 基础类型(下)

3-3 基础类型(注意版本报错问题)

3-4 变量声明 – var 声明

3-5 变量声明 – let 声明

3-6 变量声明 – const 声明

3-7 变量声明 – 解构

3-8 变量声明 – 展开

3-9 接口 – 接口初探

3-10 接口 – 可选属性+只读属性

3-11 接口 – 额外属性检查+函数类型+可索引的类型

3-12 接口 -类类型+继承接口+混合类型+接口继承类

3-13 类 – 基本示例+继承

3-14 类 – 公共,私有与受保护修饰符+ readonly 修饰符

3-15 类 – 存取器+ 静态属性

3-16 类 – 抽象类+ 高级技巧

3-17 函数 – 基本示例+ 函数类型

3-18 函数 – 可选参数和默认参数

3-19 函数 – this+ 重载

3-20 泛型 – 基本示例+ 使用泛型变量+泛型类型

3-21 泛型 – 泛型类+泛型约束

3-22 类型推断 – 基础+ 最佳通用类型+ 上下文类型

3-23 高级类型 – 交叉类型

3-24 高级类型 – 联合类型

3-25 高级类型 – 类型保护

3-26 高级类型 – 可以为 null 的类型+ 字符串字面量类型

第4章 ts-axios 项目构建[工欲善其事必先利其器]

分析 axios 项目的重构需求,使用 typescrpit-library-starter 脚手架初始化项目,并编写基础请求的代码,搭建整个 demo 的架构方案。

4-1 需求分析

4-2 初始化项目 – 创建代码仓库

4-3 初始化项目 – TypeScript library starter

4-4 初始化项目 – 关联远程分支

4-5 编写基础请求代码 – 创建入口文件

4-6 编写基础请求代码 – 利用 XMLHttpRequest 发送请求

4-7 编写基础请求代码 – demo 编写

第5章 ts-axios 基础功能实现[核心流程]

实现 axios 的基础功能,包括对请求 url、data、header 以及响应 data、header 的处理。

5-1 处理请求 url 参数 – 需求分析

5-2 处理请求 url 参数 – buildURL 函数实现

5-3 处理请求 url 参数 – 实现 url 参数处理逻辑

5-4 处理请求 url 参数 – demo 编写

5-5 处理请求 body 数据 – 需求分析+ 实现

5-6 处理请求 header – 需求分析

5-7 处理请求 header – processHeaders 函数实现

5-8 处理请求 header – 实现请求 header 处理逻辑

5-9 处理请求 header – demo 编写

5-10 获取响应数据 – 需求分析+实现

5-11 处理响应 header – 需求分析+ parseHeaders 函数实现及应用

5-12 处理响应 data – 需求分析+ transformResponse 函数实现及应用

第6章 ts-axios 异常情况处理[不可忽视的边界条件]

处理 axios 请求的一些异常情况,包括网络错误、请求超时,构造一个信息增强错误处理类。

6-1 错误处理 – 需求分析

6-2 错误处理- 网络错误+超时错误+非200状态码+demo

6-3 错误信息增强 – 需求分析

6-4 错误信息增强 – 创建 AxiosError 类

6-5 错误信息增强 – createError 方法应用+ 导出类型定义

第7章 ts-axios 接口扩展[工厂模式的合理运用,设计思想的转变]

把 axios 从普通函数实现到通过工厂模式类的设计转变,并扩展更多调用接口,把 axios 变成了一个 混合对象,以及让响应数据支持泛型。

7-1 -1 扩展接口 – 需求分析

7-2 -2 扩展接口 -接口类型定义+ 创建 Axios 类

7-3 -3 扩展接口 – 混合对象实现+ demo 编写

7-4 -1 axios 函数重载 – 需求分析+ 重载实现+ demo 编写

7-5 -1 响应数据支持泛型- 需求分析+ 接口添加泛型参数+ demo 编写

第8章 ts-axios 拦截器实现[巧妙运用 Promise 链式调用]

实现 axios 的拦截器功能,对整个实现做了详细的设计,最后实现拦截器管理类以及链式调用逻辑。

8-1 -1 拦截器的设计与实现 – 需求分析+ 整体设计

8-2 -2 拦截器的设计与实现 – 拦截器管理类实现

8-3 -3 拦截器的设计与实现 – 链式调用实现

8-4 -4 拦截器的设计与实现 – demo 编写

第9章 ts-axios 配置化实现[巧妙运用策略模式实现配置合并]

让 axios 支持一些默认配置,实现了配置的合并,根据不同的属性采用不同的合并策略,并且扩展了 axios.create 方法扩展默认配置,生成新的实例。

9-1 合并配置的设计与实现 – 需求分析 + 默认配置

9-2 合并配置的设计与实现 – 配置合并策略(上)

9-3 合并配置的设计与实现 – 配置合并策略(下)

9-4 合并配置的设计与实现 – flatten headers + demo 编写

9-5 请求和响应配置化- 需求分析+ 修改默认配置

9-6 请求和响应配置化- transform 逻辑重构 + demo 编写

9-7 扩展 axios.create 静态接口 – 需求分析+ 静态方法扩展+ demo 实现

第10章 ts-axios 取消功能实现[巧妙运用 Promise 实现异步分离]

实现 axios 的取消功能,包括对取消接口的设计,CancelToken 类的设计与实现。

10-1 -1 取消功能的设计和实现 – 需求分析+ 异步分离的设计方案

10-2 -2 取消功能的设计和实现 – CancelToken 类实现+ 扩展静态接口

10-3 -3 取消功能的设计和实现 – Cancel 类的实现及 axios 的扩展+ 额外逻辑实现

10-4 -4 取消功能的设计和实现 – demo 编写

第11章 ts-axios 更多功能实现[锦上添花]

实现 axios 更多的功能,包括 XSRF 防御、上传、http 认证授权、withCredentials、自定义参数序列化、自定义合法状态码、自定义合法状态码等,百分百实现官方 axio 在浏览器端的功能。

11-1 withCredentials 需求分析&代码实现& demo 编写

11-2 xsrf 防御 – 需求分析

11-3 xsrf 防御 – 代码编写

11-4 xsrf 防御 – demo 编写

11-5 上传和下载的进度监控 需求分析+ 代码实现

11-6 上传和下载的进度监控 demo 编写

11-7 HTTP 授权 需求分析+ 代码实现 + demo 编写

11-8 自定义合法状态码 需求分析+ 代码编写 + demo编写

11-9 自定义参数序列化 需求分析+ 代码编写 + demo编写

11-10 baseURL 需求分析+ 代码编写 + demo编写

11-11 静态方法扩展 需求分析+ 代码编写 + demo编写

第12章 ts-axios 单元测试[保障代码高质量]

先介绍单元测试,再讲解测试环境搭建,最后完整的实现整个 axios 库的单元测试,保证测试覆盖率达到 99%

12-1 前言

12-2 Jest 的安装和配置 Jest 安装

12-3 辅助模块单元测试 准备工作

12-4 辅助模块单元测试 util 模块测试-

12-5 辅助模块单元测试 cookie 模块测试 + data 模块测试 + error 模块测试

12-6 辅助模块单元测试 headers 模块测试

12-7 辅助模块单元测试 url 模块测试

12-8 请求模块单元测试 jasmine-ajax + 测试代码编写

12-9 header 模块单元测试 测试代码编写

12-10 Axios 实例模块单元测试 测试代码编写

12-11 拦截器模块单元测试 测试代码编写

12-12 mergeConfig 模块单元测试 测试代码编写

12-13 请求取消模块单元测试 Cancel 类单元测试 + CancelToken 类单元测试 + Cancel 业务逻辑单元测试

12-14 剩余模块单元测试 defaults 模块单元测试

12-15 剩余模块单元测试 transform 模块单元测试 + xsrf 模块单元测试

12-16 剩余模块单元测试 上传下载+HTTP 授权+ 静态方法模块单元测试

12-17 剩余模块单元测试 补充未覆盖的代码测试

第13章 ts-axios 部署发布[向社区分享你的项目]

讲解 ts-axios 库的部署和发布,使用 Rollup 编写部署构建脚本,使用 semantic-release 管理版本和发布。

13-1 ts-axios 编译与发布 需求分析 + 编译和打包

13-2 ts-axios 编译与发布 自动化部署

13-3 ts-axios 编译与发布 运行部署脚本

13-4 ts-axios 库 在 TS 和 JS 项目中引用

第14章 课程总结[知识梳理,巩固加深]

本次课程的整体回顾,总结学习的内容。

14-1 课程总结 与回顾

本课程已完结

评论0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址