vue封装axios模块化api接口封装

1.新建接口文件/api/list.js

import request from '../utils/request';
/**
 * 获取风险点详情
 * @param {id}
 * @returns
 */
export function desc(id) {
  return request({
    url: `risk/desc?id=${id}`,
    method: 'get',
  });
}

2.新建接口文件/api/index.js导出list所有接口

import * as list from './list'
export default  {list}

3.封装axios 请求拦截和响应拦截

/**
 * 封装axios请求函数
 */
import axios from 'axios';
import router from '../router';
import { Toast } from 'vant';
const request = axios.create({
  baseURL: process.env.VUE_APP_URL,
  timeout: 10000, // request timeout
});
/**
 * 请求拦截器
 */
request.interceptors.request.use(
  config => {
    Toast.loading({
      message: '加载中...',
      forbidClick: true,
      loadingType: 'spinner',
      duration: 0,
    });
    const token = localStorage.getItem('Authorization');
    if (token) {
      config.headers.token = token;
    }
    return config;
  },
  error => {
    Toast.clear();
    console.log('err' + error); // for debug
    return Promise.reject(error);
  },
);
// 响应器拦截
request.interceptors.response.use(
  response => {
    console.log('请求结束response...'), Toast.clear();
    return Promise.resolve(response.data);
  },
  error => {
    console.log('请求结束error...'), Toast.clear();
    if (error.response.status) {
      const { response } = error;
      errorHandle(response.data.code, response.data.msg);
      return Promise.reject(error.response);
    }
  },
);
export default request;

3.挂载Vue原型

Vue.prototype.$api = api;
Vue.config.productionTip = false;
Vue.prototype.$axios = axios;

4.页面调用

methods: {
    //数据初始化 风险点详情
    desc() {
        return this.$api.list.desc(this.formData.id);
    },
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凯文..Kevin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值