axios的二次封装-拦截器的使用

我们在项目中,避免不了要使用axios来进行对数据的请求,那如果每页都写一份axios请求,又会显得页面很乱不好维护,那么我们就应该对axios进行二次的封装

1.首先我们在src创建一个api文件

2. 然后再终端安装以下两个插件

//引入axios

npm install --save axios

//引入进度条        

npm install --save nprogress

3.引用并使用

// 对axios的二次封装

import axios from "axios";

//引入进度条

 import nProgress from "nprogress";

//引入进度条样式

 import "nprogress/nprogress.css";



//利用axios的、对象的create方法,去创建一个实例

const http = axios.create({

//基础路径

   baseURL: "/api",

    timeout: 5000,

});



//请求拦截器

http.interceptors.request.use((config) => {

   //进度条开始

     nProgress.start();

     return config;

});



//响应拦截器

http.interceptors.response.use(

          (res) => {

        //成功回调

        //进度条结束

        nProgress.done();

        return res.data;

},

        (err) => {

        //失败回调 --终止promise链

        return Promise.reject(new Error("faill"));

}

);



export default http;

4.再api里创建一个文件夹例如index.js,在api文件夹内创建文件,代码如下

import http from '@/api/http'

export function getSliders(params){

return request({

url:'/swiper'//你的接口
method:"get/post"
data:params//post请求带的数据

})
}

5.在页面中引入上方导出的方法

import { reqCreateTalk } from "@/api/index";

async handelOk() {
   
   const data = {} //post请求带的数据

      const res = await reqCreateTalk(data);

      try {
        
        if (res.code == 200) {
        
         //做一些事情
        }
      } catch (error) {
        console.log(error);
      }
    },
注:因为返回的是promise,所以要用try-catch来监控返回的信息,请求的时候
   要用async awiat

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值