axios的封装

1.自定义一个类完成对axios基本功能的封装

import axios from "axios";
import { BASE_URL, TIMEOUT } from './config.js'

class LZRequest {
  constructor(baseURL, timeout = TIMEOUT) {
    this.instance = axios.create({
      baseURL,
      timeout
    })
  }
  request(config) {
    return new Promise((resolve, reject) => {
      this.instance.request(config).then(res => {
        resolve(res.data)
      }).catch(err => {
        reject(err)
      })
    })
  }
  get(config) {
    return this.request({ ...config, method: 'get' })
  }
  post(config) {
    return this.request({ ...config, method: 'post' })
  }
}

export default new LZRequest(BASE_URL, TIMEOUT)

2.将一些通用配置抽离出来放到单独的文件

export const BASE_URL = 'http://123.207.32.32:1888/api'
export const TIMEOUT = 10000

3.模块化

对每个请求配置对应的文件,在做一层封装。

import LZRequest from '../request/index.js'
export function getCityAll() {
    return LZRequest.get({
        url: '/city/all'
    })
}

4.在index.js中将所有模块导入在导出,方便在项目中的导入

export * from './modules/city'

5.项目结构

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值