vue如何封装axios?

这篇博客介绍了如何利用npm安装axios并进行服务端配置,包括设置基础URL、超时时间,以及添加请求和响应拦截器来处理加载提示和错误。在service.js中,创建了一个axios实例并导出,方便在其他模块中调用。同时,创建了api.js用于定义具体的接口请求,如获取验证码和登录功能。最后展示了在实际应用中如何导入并使用这些封装好的请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、首先在小黑框下载 npm i axios --save下载依赖,然后创建src/http/service.js

2、在service.js文件中存放的时axios的配置以及拦截器等,最后导出一个axios象

import  axios  from  'axios'
import  {  Toast  }  from  'vant'
import  { baseUrl }  from  '@/config'

const  service  =  axios.create({  
    baseURL:  baseUrl,
      // url = base api url + request url
    //   withCredentials: true, // send cookies when cross-domain requests
      timeout:  5000  // request timeout
})
let  loading
    //请求拦截器
service.interceptors.request.use(config => {   
        loading  =  Toast.loading({     message:   '加载中...',     forbidClick:  true,    });  
        config.headers['Authorization']  =  sessionStorage.getItem('token')  
        return   config
    }, error  =>  {       // do something with request error
              
        console.log(error)  // for debug
                   return  Promise.reject(error)    
    })
    //响应拦截器
service.interceptors.response.use(res => {   //关闭loading
           
        loading.clear()   
        return  Promise.resolve(res)
    }, error => {   
        loading.clear()   
        console.log('err' +  error)   
        return  Promise.reject(error)
    })
    // module.export= service;
export  default  service

3、这里我再创建一个api.js,这里面放的是请求接口.传递的参数.请求方式,并且引入封装好的axios对象。

import  service  from  './service'
import  require  from  './require'

//定义请求方法,然后导出
//获取验证码
export  function  smsCode(arg) {    
    return  service({         url: require.smsCode,         data: arg,         method: 'post'     })
}
export  function  login() {    
    return  service({         url: require.login,         data: {},         method: 'post'     })
}

 4、这里我再创建一个request.js,这里面放的是具体请求。

 

 5、使用

使用前先导入然后获取数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值