当前位置: 首页 > 网络应用技术

我在这里放了所有关于Axios的封装

时间:2023-03-09 13:36:27 网络应用技术

  关于Axios有无数包装。

  但是大多数看起来像一个单独的功能:例如单独取消请求,缓存,带有令牌自动的,等等。

  该结构太松,不够封装。它需要手动复制,这太麻烦了,一旦改变了业务,就必须重写。否则已封装,但可伸缩性太低,不能根据业务调整来调整;重复使用太低,等等。

  缺乏完整的解决方案。

  针对上述问题,我意识到了库。

  基于请求包装,使用模板方法模式实现库,每个步骤都可以用被子类覆盖以促进扩展,并且可以重复使用配置。

  您也可以使用该请求,只需重写所使用的关键步骤即可。

  这不是最终的解决方案,并不是说您可以使用此库编写任何内容,而是可以大大降低代码复杂性,改善代码的复制并为最终解决方案提供支持。

  面对继承,面向封闭,包装但不关闭。

  github地址:https://github.com/mengxinssfd/request-template

  欢迎来到明星,发行,公关

  您可以使用其他方法来安装。建议使用安装来减少音量

  目前,它大约等于

  每次设置都很麻烦,您可以使用功能来生成一个函数来简化它。

  注意:生成的函数与参数的返回值一致,并且包含不再工作的属性

  第二个参数接收了其中一种配置,例如设置一些公共URL前缀。

  当命中缓存时,请求的结果将直接从缓存中获得,不会启动新请求,并且已取消的请求将不会输入缓存

  注意:最好在缓存时复制请求结果,否则由于数据的先前操作可能会引起问题;缓存不是一个银色炸弹,可以注意这一场合。

  注意:由于使用长缓存时间,因此存在内存溢出的风险。

  将5个合成策略转换为默认广告系列策略的字符串相同,并且缓存相同。

  原始添加一个:根据命中率缓存

  需要实现自定义模板

  许多人不知道取消请求的作用。后端将收到请求,并发出请求。

  实际上,我们根本不需要关心这些

  我们只需要照顾:不要处理界面,也就是说,我不希望这些接口是否不成功。这是取消请求的含义

  当然,取消仅对应于获得的数据。提交数据不应取消。重复提交只能说逻辑是错误的,并且不应依靠工具。

  获得的时机非常重要。执行请求方法后必须获得的取消函数有效,并且必须使用相应的实例取消请求

  使用此方法可以取消故障和重复测试,但是由于难以确定时间安排 - 当前请求可能会成为其他请求,因此不建议使用它来取消重型测试

  您可以取消重试,但是范围太大,您可能会意外伤害其他请求,您需要仔细使用它

  取消使用的使用是方便且灵活的。我们可以在请求之前取消相同的请求;

  或将所有请求设置为在重复使用模板时设置默认值,然后请求设置不同以实现反向取消的函数

  它也可以取消执行中的故障

  重复3次,并将状态代码重复3次。如果您继续失败,加上第一个故障请求,则最终将启动相同的请求

  重复3次,每个重试间隔3秒,默认时间为0秒,这意味着每次是请求

  重复3次,每个试验间隔3秒,第一个重试零间隔,即,第一个重试是请求

  错误的方法

  因为目前会记住它,所以无法确定当前是哪个请求。尽管可以直接调用,但如果有很多请求,其他请求可能会意外受伤。

  因此,最好的方法是取消请求。

  正确的方法

  使用默认模板时,需要背景数据结构

  请求 - 级别的国家处理通常是补充。常用的状态处理建议写入+上的+

  目前,请求将使用缓存,带来,使用状态处理,无法重试或将其带到

  在全球情况下有一项小技能,您可以首先设置它,设置集合

  然后,当要求时,设置设置,然后在整个情况下无法使用缓存。仅使用缓存时间。您只需要在请求时打开请求缓存功能。该操作简化了。

  目前,提供了三个级别的配置重复用途,即继承级别,实例级别和API级配置reuses

  最大的可伸缩方法,继承后,您可以更改为所需的任何方式,您可以完全重复使用或重建整个模板,您可以看到情况或完整的演示

  在新实例中带来参数后,本实例的所有请求将带有重复使用的这些参数。该示例可以看到全局配置。

  目前,为API配置重复使用提供了3种方法,即

  此方法返回关闭,提供配置缓存的功能,接收两个参数,支持统一的配置修改并返回方法

  该方法返回的方法是固定的,无法修改

  以统一的加上前缀为例,并添加缓存为示例

  此方法返回关闭,该封闭提供了配置缓存的功能,接收参数,参数包含两个属性,然后返回一个方法

  区别在于配置可以通过回调修改,并且在内部实现了合并配置,但是没有功能函数。

  该方法返回的方法仍然可以更改

  以统一的加上前缀为例,并添加缓存为示例

  注意:这与其他库的示例不同,这只会影响关闭中的请求

  如果写太多请求,您会发现您很少更改其他配置。只有这三个参数才真正更改。

  我不在乎数据是否属于数据,或者我只知道它是数据,最好给我自动转换(通常,它很少通过请求通过)

  我为这种情况提供了一种方法

  此方法还返回封闭,接收和。

  返回仅接收修改的方法,不再需要修改配置,简化操作

  例如,您可以使用自己喜欢的UI库来实现,并且需要自定义模板。

  注意:示例被称为多次,不会多次打开

  应该注意的是,由服务调用的完整屏幕加载是一种情况。如果您在关闭之前的全屏幕加载之前再次调用完整的屏幕加载,它将不会创建新的加载实例,但请返回现有的现有实例全屏加载实例

  如果您不是一个案例,那么您需要处理可能导致的多个问题

  操作包装,默认情况下保存,您可以保存或打开或打开

  状态代码在时间上清除,保留状态代码,可以根据实际业务进行调整

  如果将其放置在设置配置时,则设置配置

  您还可以认为许多人会像这样设定在拦截器上,但是个人并不是很建议。这有点不容易理解

  例如,在列表页面上,您可以选择分类和标签以及分类方法(实际上是我的博客)。这些操作区域通常会单击它,但实际上,数据不会如此快地刷新,并且很容易生成冗余数据。我们可以完全缓存数据。

  然后,只要这些参数相同,您就不会启动请求,而是直接从缓存中获取数据,但是如果刷新它,您将启动请求。

  将缓存到本地存储的功能也非常简单。只要继承,重写和方法就可以实现。

  有时,后端要求必须以形式形式。目前,我们需要处理CAZ

  自定义模板

  或使用全局配置

  选拔场景,快速单击1、2、3,发送3个请求,请求返回快速和缓慢,最后单击第三页,但最后一页是第二页上的数据。这是一个错误,是一个错误第二页?然后,该请求同时具有多个相同的请求,因此它可以中断先前的请求并仅执行最后一个请求吗?

  这个场景很常见,与上页面经常类似,但是从缓存中获取数据是快速的,并且用户点击不能比缓存中的数据更快。

  我们可以简单地实现此功能

  只需添加请求,然后在每次呼叫之前取消它。这很简单吗?

  这个问题来自前端前面的10个相同请求。如何控制只发送一个请求?-Uejin.cn

  PALED:接口请求仍在待处理中,并且将在短时间内发送相同的请求

  这个问题只是在开始,这是10个请求的误导,认为10次之后,它失败了。

  经过仔细阅读后,实际上,这仍然是缓存的问题,即失败的失败和成功的成功。

  与上面的缓存场景类似,直接使用缓存函数

  这是我的博客前台的包装

  环境:VUE3,VITE,TS,ElementPlus

  目录结构

  封装

  S放松使用错误信息,保存,清洁,清爽和其他操作等。

  实现自定义请求模板,添加Global等。

  用户模块

  标签模块