Vue项目简单封装axios

(一)配置代理服务器

在vue.config.js文件中

devServer: {
    // 开启代理服务器 
    proxy: {
      '/tasks': { //匹配所有以/tasks开头的请求路径
        target: 'http://localhost:5000', // 代理目标的基础路径
        pathRewrite: { '^/tasks': '' },
        ws: true,
        changeOrigin: true
      }
    }
  }

(二)创建框架结构

1.$http.js文件用于配置axios

// 该文件用于配置axios
import axios from "axios"

// 设置请求超过时间 10s
axios.defaults.timeout = 1000 * 10

// post请求头
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';

// 设置公共路径
axios.defaults.baseURL = 'http://localhost:8080'

// 添加请求拦截器
axios.interceptors.request.use(
    (config) => {
        console.log(config)
        // 这里写发送请求后的操作
        return config
    },
    (err) => {
        console.log(err)
        // 这里写对请求错误执行的操作
        return Promise.reject(error)
    }
)

// 添加响应拦截器
axios.interceptors.response.use(
    (config) => {
        console.log(config)
        // 这里写响应请求后的操作
        return config
    },
    (err) => {
        console.log(err)
        // 这里写对响应错误执行的操作
        return Promise.reject(error)
    }
)

export default axios

2.base.js用于存储配置的多个baseURL

// 该文件用于存储配置的多个baseURL
const base = {
    tasks: 'http://localhost:8080'
}
export default base

3.apis.js用于集中存储项目中所有需要的接口请求

// 该文件用于集中存储项目中所有需要的接口请求
import axios from "./$http"
import base from "./base"

const apis = {
    // 接收数据
    get() {
        return axios.get(`${base.tasks}/tasks/get`)
    },
    // 发送数据
    save(tasks = []) {
        return axios.post(`${base.tasks}/tasks/save`, {
            tasks
        })
    }
}
export default apis

(三)实现全组件可用

将apis挂载到vue原型上

main.js文件:

import apis from './request/apis'
// 将封装好的apis挂载到Vue原型上
Vue.prototype.$apis = apis
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值