第五十五篇:Axios的封装

好家伙,

 

上图

 

1.为什么需要封装axios?

当我们改变项目的使用环境时候,url也会随之改变,那么我们就需要改很多axios请求中的url配置

现在我们将axios封装,在项目使用环境改变时我们只用改变axios封装方法中的baseurl一项就行了,请求的接口地址不变

 

 

2.Axios的封装方式

在src的文件中新建一个request.js的文件

import axios from "axios";
//创建一个axios的对象

const instance = axios.create({
    baseURL:"https://xxx.xxx.xxx",  // baseURL会在发送请求的时候拼接在url参数前面
    timeout: 5000
});


instance.interceptors.request.use(
    function(config){
        return config;
    },
    function(err) {
        return Promise.reject(err);
    }
};


export function get(url, params)

    return instance.get(url, {
    params
    });


export function post(url, data) {
     return instance.post(url, data); 
}      

 

回到food.vue文件加上方法引入

import { get } from "../src/request";

方法配置:

methods : {
      getData(){
       
          axios.get("/user/food",{
            params:{
              uid:1,
            },
            headers:{}
          })
          .then(res =>console.log(res));  //成功后直接出结果
      },
    }

封装完成

 

3.axios全局拦截 

请求拦截

//请求拦截
//所有的网络请求都会先走这个方法
instance.interceptors.request.use{
  function(config){
    console.group("全局请求拦截");
    console.Log(config);
    console.groupEnd();
    return config;
  },
  function(err) {
  return Promise.reject(err);
};

 

 

响应拦截

// 响应拦截所有的网络请求退回数据之后都会先执行此方法

//此处可以根据服务器的放回状态码做相应的数据

instance.interceptors.response.use{
  function(response) {
  console.group("全局响应拦截");
  console.log(response);
  console.groupEnd();
  return response;
  function(err){
  return Promise.reject(err);
  }
};

 

(其具体作用暂时未知,笔记先记上)

posted @ 2022-03-10 23:54  养肥胖虎  阅读(308)  评论(0编辑  收藏  举报