axios的二次封装

 1 // 对axios进行二次封装
 2 import axios from "axios"
 3 // 利用axios对象的create方法,去创建一个axios实例
 4 // request就是axios,只不过稍微配置了一下
 5 const requests = axios.create({
 6     // 配置对象
 7     // 基础路径,在发请求时,路径当中会出现api
 8     baseURL: '/api',
 9     // 请求超时的时间5s
10     timeout: 5000,
11 })
12 // 请求拦截器,在发请求前,请求拦截器可以检测到,可以在请求发出去之前做一些事
13 requests.interceptors.request.use((config) => {
14     return config
15 })
16 // 响应拦截器
17 requests.interceptors.response.use((res) => {
18     // 响应成功的回调函数
19     return res.data
20 }, (error) => {
21     // 响应失败的回调函数
22     return Promise.reject(new Error('faile'));
23 });
24 export default requests

 在main.js里全局注册

import requests from "@/api/request";
Vue.prototype.$requests=requests;

在需要的页面调用接口

data() {
    return {
      goodsList: [],
      pageQuery: {},
      pageParam: {
        pageNo: 1,
        pageSize: 5,
        totalPages:0
      },
    };
  },
  components: {
    SearchSelector,
  },
  mounted() {
    this.pageQuery = this.$route.query;
    this.getList();
  },
  methods: {
    getList() {
      const queryParam={
        ...this.pageParam
      }
      this.$requests({ url: "/list", method: "post", data: queryParam }).then((res) => {
        if (res.code == 200) {
          this.pageParam.totalPages=res.data.totalPages
          this.goodsList = res.data.goodsList;
        }
      });
    },

 

posted @ 2022-10-24 11:15  小闫的姑娘  阅读(118)  评论(0编辑  收藏  举报