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

如何在南美做网站推广免费做网站排名

如何在南美做网站推广,免费做网站排名,一个app开发大概要多少钱,亚洲建行网站打不开项目背景是vite搭建的vue3.0 TypeScript 的项目,需要统一处理和统一维护就对axios进行了二次封装 axios的安装 npm install axios定义http文件夹然后内部定义index.ts文件,内部开始封装 import axios, {type AxiosInstance} from "axios";…

项目背景是vite搭建的vue3.0 + TypeScript 的项目,需要统一处理和统一维护就对axios进行了二次封装

axios的安装

npm install axios

定义http文件夹然后内部定义index.ts文件,内部开始封装

import axios, {type AxiosInstance} from "axios"; // AxiosInstance (axios的配置好的类型定义)
import qs from 'qs'; // 引入qs处理字符串的解析和序列化
// 定义 promise 类型
interface Result<T> {code:number;message:string;data: T;total?: number;
}
export default class request {axiosFun: AxiosInstance;  // 声明初始化的属性constructor() {// 设置连接地址和超时时间还有凭证this.axiosFun = axios.create({timeout: 1000 * 60 * 5,baseURL: "http://localhost:8888/",withCredentials: true,});// 统一增加请求头 也可以根据路径判断来添加请求头this.axiosFun.interceptors.request.use((config:any)=>{config.headers.token = localStorage.token || '';  return config;});// 请求返回后的统一处理 在这里可以处理返回的不同状态码this.axiosFun.interceptors.response.use((res:any)=>{if (res.headers["content-disposition"]) {return res;}},(err:any)=>{return Promise.resolve(err)});}//get请求public static getFetch(url: string, data?: any): Promise<Result<object>> {return new Promise((resolve, reject) => {new request().axiosFun.get(url, { params: data }).then((result:any) => {resolve(result)}).catch((error:any) => {reject(error)})})}//post json请求public static postJson<T>(url: string, data?: any): Promise<Result<object>> {return new Promise((resolve, reject) => {new request().axiosFun.post(url, JSON.stringify(data), { headers: {'Content-Type': 'application/json;charset=UTF-8'} }).then((result:any) => {resolve(result)}).catch((error:any) => {reject(error)})})}//post formData请求public static postFormData(url: string, data?: any): Promise<Result<object>> {return new Promise((resolve, reject) => {new request().axiosFun.post(url, data,{ headers: {'Content-Type': 'multipart/form-data'} }).then((result:any) => {resolve(result)}).catch((error:any) => {reject(error)})})}//post 表单请求public static postFormUrlencoded(url: string, data?: any): Promise<Result<object>> {return new Promise((resolve, reject) => {new request().axiosFun.post(url, qs.stringify(data, {indices: false})).then((result:any) => {resolve(result)}).catch((error:any) => {reject(error)})})}//post json请求 返回blobpublic static postFileJson<T>(url: T, data?: any): Promise<Result<object>> {return new Promise((resolve, reject) => {new request().axiosFun.post(url as string, JSON.stringify(data), { headers: {'Content-Type': 'application/json;charset=UTF-8'},responseType:'blob' }).then((result:any) => {fileData(result);}).catch((error:any) => {reject(error)})})}//get 下载文件 返回blobpublic static getFileFetch(url: string, data?: any): Promise<Result<object>> {return new Promise((resolve, reject) => {new request().axiosFun.get(url, { params: data,responseType: "blob" }).then((result:any) => {fileData(result);}).catch((error:any) => {reject(error)})})}
}
// 封装 a 标签下载文件
const fileData = (result:any)=>{let fileName:string = result.headers['content-disposition'].split('fileName=')[1]fileName = decodeURIComponent(fileName)let blob:Blob = new Blob([result.data])const fileUrl:string = URL.createObjectURL(blob)const download:any = document.createElement('a')download.download = fileNamedownload.style.display = 'none'download.href = fileUrldocument.body.appendChild(download)download.click()document.body.removeChild(download)URL.revokeObjectURL(fileUrl)return
}

http文件夹定义modules文件夹再定义homeApi.ts文件

import request from "@/http/request";  // 引入封装好的文件
export default class homeRequest {static messageList(params?: Object) {return request.postJson('/messageList', params)}
}

http文件夹内部定义api.ts文件

import HomeRequest from "@/http/modules/homeApi";
interface IHomeRequest {messageList(params?: Object): Promise<any>;
}
interface IApi {home: IHomeRequest;
}
export default class Api implements IApi {static home:IHomeRequest = HomeRequest
}

页面调用

import api from "@/http/api";
interface allInfo {[key:string]:any
}
interface Result<T> {code:number;message:string;data: T;total?: number;
}
const {code,data} = api.home.messageList(params) as Result<allInfo>
if(code === 200) {console.log(data)
}
http://www.dtcms.com/a/480422.html

相关文章:

  • 个人网站备案名称例子沈阳网站推广公司排名
  • 潍坊米搜网站建设访客可以用微信回复wordpress
  • 如何选择专业网站开发商丁香人才网官方网站
  • 简约 网站净化工程 技术支持 东莞网站建设
  • 网站建设实训的报告网站开发语言 排行榜
  • 机关单位 网站建设方案策划书中国纪检监察报每周几期
  • 武冈网站建设哪家好电脑网页打不开怎么回事
  • 江苏省城乡和住房建设厅网站苏州晶体公司网站
  • WORDPRESS网站如何改版怎么做一个网站app吗
  • 天台高端网站建设公司代理网页 国外
  • 天元建设集团有限公司第八建筑工程公司长沙seo建站
  • 网站搭建公司排行门户网站建设 报告
  • 百度查重免费舟山seo
  • 做地方分类信息网站需要什么资质吗成都网站制作中国互联
  • 赣州网站设计哪家强平台不得诱导下载
  • 南宁网站建设公司哪家好小型网站建设方案
  • 制作旅游网站百度指数专业版app
  • 怎么做旅游网站框架江苏省建设集团是国企吗
  • 仿it资讯类网站源码商城类app制作价格
  • 网站的v2信誉认证怎么做企业邮箱服务
  • 制作微信网页的网站吗中间商可以做网站吗
  • 杭州网站制作外包网站推广软件推荐
  • 网站建设丨找王科杰专业seo wordpress theme
  • 上海做网站的公司怎么做谷歌这样的网站
  • 环保网站设计价格辽宁建设工程信息网联合体投标
  • 织梦模板大气网站建设类网站模板php做网站主题
  • 各大网站大全电商网站建设网络公司
  • 泉州网页模板建站广东基层团组织建设部网站
  • 深圳龙华建设局官方网站织梦网站程序模板
  • 惠州网站建设米普可思微信小程序界面设计