vue中文件配置以及axios请求的封装

  1. 首先,很多的时候项目的文件的布局以及代码的管理真的很重要。(亲身体验,努力改进中)
    项目配置
    2.其次是axios封装,直接上代码吧。(在其request JS文件里面)
import Vue from "vue";
import axios from "axios";
import qs from "qs";  //序列化字符串
import { Toast } from "vant";

Vue.use(Toast);
Vue.prototype.$axios = axios;
Vue.prototype.$qs = qs;

const url = "默认的域名";

// 导出封装好的axios
export function request(config) {
  // 1、创建axios实例
  const instance = axios.create({
    baseURL: url
  });
  // 2、axios的请求拦截器
  instance.interceptors.request.use(
    req => {
      Toast.loading({
        // loading的时候禁止点击
        forbidClick: true,
        message: "加载中..."
      });
      return req;
    },
    err => {
      return Promise.reject(err);
    }
  );

  // 3、axios的响应拦截器
  instance.interceptors.response.use(
    res => {
      // 保证最少500毫秒的加载时间
      setTimeout(() => {
        Toast.clear();
      }, 500);
      return res.data;
    },
    err => {
      return Promise.reject(err);
    }
  );

  return instance(config);
}

3.再其在每个路由中请求数据的页面中再其模块化开发时引入封装的文件即可。

import { request } from "./request";
// 在其请求页面直接引入即可使用导出的请求数据的地方。 如果需要传参自己写成动态的就行。
export function getCategory(dataPost) {
  return request({
    url: "/category",
    method:'POST',
    data:dataPost,
    headers:{}// 看后台带不带
  });
}

export function getSubcategory(maitKey) {
  return request({
    url: "/subcategory",
    params: {
      maitKey
    }
  });
}

export function getCategoryDetail(miniWallkey, type) {
  return request({
    url: "/subcategory/detail",
    params: {
      miniWallkey,
      type
    }
  });
}

  1. 最后引入在其页面引入
import {getCategory} from "@/network/category";
      getSubcategory(maitKey).then(res => {
        // console.log(res);  请求数据成功里面进行判断
      });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值