axios的二次封装

aioxs为什么要二次封装?

// requert就是axios,只不过稍微配置一下
const requests=axios.create({
    // 基础路径,发送请求的时候,路径当中会出现/api
    baseURL: '/api',
    // 代表请求超时的时间
    timeout:5000,
    
})

1.在发请求时,请求以api开头,可以设定基础路径在每次发送请求时,路径就会自动加上/api

在每次写请求路径时就不用再带着/api直接写后面的路径即可

2.写请求拦截器:发请求之前处理的业务

3.写响应拦截器:当服务器返回数据以后处理的业务

请求拦截器的作用有很多,像进度条的开始就写在请求拦截器中,进度条结束写在响应拦截器中。

一次请求从开始到结束,可以通过进度条向用户展示获取数据的进度。

例如:电商项目,游客的身份登录,通过uuid生成唯一的身份标识,请求以游客身份访问购物车此时api文档中并没有要求传递参数,就需要通过请求头的方式传递给服务器,请求拦截器的参数config中就包含了请求头

// 请求拦截器,在发请求之前,请求拦截器可以监测到,可以请求发出去之前做一些事情
requests.interceptors.request.use((config)=>{
    // config配置对象,对象里面有一个属性很重要,请求头
     // 将uuid通过请求头带给服务器
    if(store.state.detail.uuid_token){
        // 给请求头添加字段,和后台商量好了
        config.headers.userTempId=store.state.detail.uuid_token
    }
    // 需要携带token带给服务器
    if(store.state.user.token){
        // JSON.parse(localStorage.setItem("TOKEN"))
        config.headers.token=store.state.user.token
    }


    // 进度条开始动
    nprogress.start()
    return config
})

而响应拦截器做的相对来说比较少,一般用于进度条的结束和对返回数据的简化,例如返回的数据,我们只需要返回数据中的data对象,这样就在后续对数据作出了统一的处理

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值