vue axios封裝


前言:

對第三方庫進行二次封裝和抽離到統一模塊,項目面對自己的模塊進行開發。如果有一天更換庫,只需要修改自己模塊中的代碼,無需對整個項目進行重構。

將axios網絡請求庫封裝到network文件下的request.js中,項目中所有網絡請求相關,全部面對request.js開發。


 

一、vue目錄結構

 

二、封裝

import axios from "axios"

// 如果換axios框架,只需本頁去掉axios相關,導入最新框架,return new Promise()就可以,項目中其他文件依舊正常使用
export function request(config) {
    const instance = axios.create({
      baseURL: 'http://123.207.32.32:8000',
      timeout: 5000
    });

  // 2. 攔截器(攔截之后進行對應操作,完成操作后需要返回回去)
  // 2.1請求攔截
    instance.interceptors.request.use(success =>{
      // 一般做1. 每次網絡請求的時候都希望在界面中顯示一個請求圖標
                  //  2. 某些網絡請求(比如登錄(token)),必須攜帶一些特殊的信息 
      console.log(success);
      return success   // 操作完成后返回回去,不然main里面拿不到
    },err =>{
      // 發不出去請求的時候到這里,一般不會出現
      console.log(err)
    })
    
    //  2.2  響應攔截
    instance.interceptors.response.use(res =>{
      console.log('響應攔截');
      console.log(res.data);
      return res.data
    },err =>{
      console.log('攔截服務器響應錯誤')
      console.log(err)
    })

    // 發送網絡請求
    return instance(config)
}

 

三、使用

// 需要網絡請求的地方導入,使用
import {request} from "./network/request";

request({
  // url: '/home/multidata/aaaaaaaaaaaaa'         // 錯誤請求測試
  url: '/home/multidata'

}).then(res =>{
  console.log('main里面',res);
}).catch(err =>{
  console.log("main里面",err);
})

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM