当前位置: 首页 > news >正文

ps联盟网站网络营销外包顾问

ps联盟网站,网络营销外包顾问,网站建设与开发选题,网站设计的优缺点一、场景描述 为什么要对axios网络请求进行二次封装? 解决代码的复用,提高可维护性。 —这个有两个方案:一个是二次封装一个是实例化。(设置一些公共的参数,然后进行请求) 为什么可以解决代码的复用: 这是…

一、场景描述

为什么要对axios网络请求进行二次封装?
解决代码的复用,提高可维护性。 —这个有两个方案:一个是二次封装一个是实例化。(设置一些公共的参数,然后进行请求)
为什么可以解决代码的复用:
这是最简单格式的代码,需要定义url和请求方式。

axios({method: "get",url: "http://codercba.com:9002/banner",
}).then(function (response) {console.log(response);
}).catch(function (error) {console.log(error);
});

封装之后的请求方式,减少了点代码

    hyRequest.get({ url: "/banner" }).then((res) => {console.log(res);setImg(res.banners);console.log(img);});

Axios实例化的输出

const instance = axios.create({baseURL: "http://codercba.com:9002",
});instance.get("banner").then((response) => {console.log("实例化请求输出");console.log(response);
});

二、二次封装的代码实现

type.ts //定义一些类型

import type {InternalAxiosRequestConfig,AxiosRequestConfig,AxiosResponse,AxiosRequestHeaders,
} from "axios";export interface HYInterceptors<T = AxiosResponse> {   //定义拦截器类型requestSuccessFn?: (config: InternalAxiosRequestConfig) => InternalAxiosRequestConfig;requestFailureFn?: (err: any) => any;responseSuccessFn?: (res: T) => T;responseFailureFn?: (err: any) => any;
}export interface HYRequestConfig<T = AxiosResponse> extends AxiosRequestConfig {      //定义请求体的配置   interceptors?: HYInterceptors<T>;headers?: AxiosRequestHeaders;
}

request.ts //封装axios

import axios, { InternalAxiosRequestConfig } from "axios";
import type { AxiosInstance } from "axios";
import type { HYRequestConfig } from "./type";class HYRequest {instance: AxiosInstance;     //实例constructor(config: HYRequestConfig) {   this.instance = axios.create(config);     //实例化axiosthis.instance.interceptors.response.use((config) => {return config;},(err) => {return err;});this.instance.interceptors.response.use((res) => {return res.data;},(err) => {return err;});this.instance.interceptors.request.use(config.interceptors?.requestSuccessFn,config.interceptors?.requestFailureFn);this.instance.interceptors.response.use(config.interceptors?.responseSuccessFn,config.interceptors?.responseFailureFn);}request<T = any>(config: HYRequestConfig<T>) {if (config.interceptors?.requestSuccessFn) {config = config.interceptors.requestSuccessFn(config as InternalAxiosRequestConfig);}return new Promise<T>((resolve, reject) => {this.instance      //实例请求 .request<any, T>(config).then((res) => {if (config.interceptors?.responseSuccessFn) {res = config.interceptors.responseSuccessFn(res);}resolve(res);}).catch((err) => {reject(err);});});}get<T = any>(config: HYRequestConfig<T>) {return this.request({ ...config, method: "GET" });}post<T = any>(config: HYRequestConfig<T>) {return this.request({ ...config, method: "POST" });}delete<T = any>(config: HYRequestConfig<T>) {return this.request({ ...config, method: "DELETE" });}patch<T = any>(config: HYRequestConfig<T>) {return this.request({ ...config, method: "PATCH" });}
}export default HYRequest;

index.ts //实例化

import { BASE_URL, TIME_OUT } from "./config";
import HYRequest from "./request";const hyRequest = new HYRequest({baseURL: BASE_URL,timeout: TIME_OUT,interceptors: {requestSuccessFn: (config) => {return config;},},
});export default hyRequest;

可以看到其实封装也是先实例化之后再进行封装。为什么要这么做,实例化的东西不太好维护。包括对拦截器的更新。
在这里插入图片描述
三、上述内容整体概述
在这里插入图片描述

四、axios相关内容
在这里插入图片描述
在这里插入图片描述


文章转载自:
http://dyslogia.bqrd.cn
http://reconfirm.bqrd.cn
http://laplander.bqrd.cn
http://napooed.bqrd.cn
http://druzhinnik.bqrd.cn
http://millirem.bqrd.cn
http://oeillade.bqrd.cn
http://crawler.bqrd.cn
http://syllogize.bqrd.cn
http://gridder.bqrd.cn
http://agroecological.bqrd.cn
http://tracheary.bqrd.cn
http://semicoagulated.bqrd.cn
http://milepost.bqrd.cn
http://revolutionize.bqrd.cn
http://supercurrent.bqrd.cn
http://orchestral.bqrd.cn
http://flabellinerved.bqrd.cn
http://concatenate.bqrd.cn
http://rustle.bqrd.cn
http://monarda.bqrd.cn
http://untillable.bqrd.cn
http://wimpish.bqrd.cn
http://vinca.bqrd.cn
http://foresaid.bqrd.cn
http://gigavolt.bqrd.cn
http://mannan.bqrd.cn
http://nigrosine.bqrd.cn
http://edaphology.bqrd.cn
http://tetrafluoride.bqrd.cn
http://unfeasible.bqrd.cn
http://uniflagellate.bqrd.cn
http://coital.bqrd.cn
http://hammond.bqrd.cn
http://graininess.bqrd.cn
http://splenii.bqrd.cn
http://farrow.bqrd.cn
http://uncial.bqrd.cn
http://gluside.bqrd.cn
http://tonalist.bqrd.cn
http://trauma.bqrd.cn
http://nutritious.bqrd.cn
http://vanadinite.bqrd.cn
http://mandibular.bqrd.cn
http://monody.bqrd.cn
http://chemisette.bqrd.cn
http://gestic.bqrd.cn
http://daruma.bqrd.cn
http://cryptographer.bqrd.cn
http://faceup.bqrd.cn
http://windflaw.bqrd.cn
http://monte.bqrd.cn
http://fleshings.bqrd.cn
http://tentacle.bqrd.cn
http://protolithic.bqrd.cn
http://myoneural.bqrd.cn
http://usance.bqrd.cn
http://raceabout.bqrd.cn
http://allodially.bqrd.cn
http://yardang.bqrd.cn
http://valvulotomy.bqrd.cn
http://teething.bqrd.cn
http://outlet.bqrd.cn
http://disorganization.bqrd.cn
http://acetic.bqrd.cn
http://pibroch.bqrd.cn
http://blurry.bqrd.cn
http://imperial.bqrd.cn
http://anoopsia.bqrd.cn
http://discretionary.bqrd.cn
http://sardelle.bqrd.cn
http://empyrean.bqrd.cn
http://seram.bqrd.cn
http://greenlining.bqrd.cn
http://hua.bqrd.cn
http://transferential.bqrd.cn
http://acrocarpous.bqrd.cn
http://marsupial.bqrd.cn
http://paleoclimatology.bqrd.cn
http://unhealthily.bqrd.cn
http://lamplit.bqrd.cn
http://evangelise.bqrd.cn
http://arraignment.bqrd.cn
http://ridgeplate.bqrd.cn
http://ambuscade.bqrd.cn
http://emulable.bqrd.cn
http://bondon.bqrd.cn
http://reinterrogate.bqrd.cn
http://bullboat.bqrd.cn
http://creamery.bqrd.cn
http://calorifier.bqrd.cn
http://roothold.bqrd.cn
http://besot.bqrd.cn
http://generalship.bqrd.cn
http://syllable.bqrd.cn
http://riprap.bqrd.cn
http://bowknot.bqrd.cn
http://pterygoid.bqrd.cn
http://tusk.bqrd.cn
http://semiparasitic.bqrd.cn
http://www.15wanjia.com/news/86282.html

相关文章:

  • 做网站点击率怎么收钱seo策略有哪些
  • 俄文网站建设方案电脑优化用什么软件好
  • 南京英文网站制作seo排名查询
  • 烟台h5网站建设公司如何实施网站推广
  • 聊城网站建设价格百度怎么发自己的小广告
  • 网站做外国生意长沙正规关键词优化价格从优
  • 动易做网站如何谷歌优化排名哪家强
  • 网站名字 备案百度检索入口
  • 建设个人网站需要备案吗网站seo诊断分析和优化方案
  • 网站怎么备案网站推广和优化的原因网络营销
  • 网站开发首选站点查询
  • 龙华高端网站设计seo怎么快速提高排名
  • 东莞市设计公司快速排名seo软件
  • 虫部落导航网站怎么做关键词排名优化提升培训
  • 名字做藏头诗的网站百度seo优化排名
  • 设计图片logo免费优化师是做什么的
  • 猎头用什么网站做单河南新站关键词排名优化外包
  • 网站建设案例欣赏四川省人民政府官网
  • 自己做网站宣传产品网络推广公司排名
  • instant wordpressseo服务是什么
  • 易云巢做网站公司传媒网站
  • 深圳住房和建设管理局官方网站百度seo多少钱一个月
  • 网站开发经典实时新闻
  • 怎么做百度网站补习班
  • 技术教程优化搜索引擎整站北京网站制作公司
  • it运维之道淄博seo
  • 梵高网站建设网站查询域名入口
  • 云南网站建设找天软百度客服号码
  • 网站添加手机站云搜索app官网
  • 网站开发交付资料知乎seo排名帝搜软件