vue全家桶 ---axios的使用和二次封裝

SilentLove發表於2018-12-29

1、前提基礎

2、axios的使用以及攔截器的設定。

  1. 安裝axios
cnpm i axios -S
複製程式碼
  1. 新建http資料夾,新建index.js,config.js檔案
  2. 在config.js對axios進行二次封裝,進行請求攔截(主要用於配置token和請求資料型別)和響應攔截(主要用於http狀態碼和後端自定義的code碼進行全域性處理)。
  3. 在index.js檔案中匯入config.js,並掛載在vue原型鏈上(也可掛載在vue的例項物件上,採用按需引用的方式可跳過)。
  4. 在main.js中引入配置,如果所示:
    vue全家桶 ---axios的使用和二次封裝
  5. 點選按鈕獲取選單資料,這裡使用express啟動服務,封裝選單api介面來模擬實際場景。
    vue全家桶 ---axios的使用和二次封裝
  6. 點選按鈕,效果如圖所示。
    vue全家桶 ---axios的使用和二次封裝
    vue全家桶 ---axios的使用和二次封裝

3、api集中管理與按需引用。

  1. 對api的集中管理和按需引用有助於專案管理和重構,減輕vue例項的負擔,優化專案效能。
  2. 之前我們使用是直接把封裝好的axios直接掛載在vue的vue原型鏈上,然後在元件中通過this.$axios.get()的方式來使用,現在我們稍微修改下。
  3. 從main.js中刪除require('./http'),修改http下index.js檔案,修改home.vue中的介面引用。如圖所示:
    vue全家桶 ---axios的使用和二次封裝
  4. 現在我們回到頁面發現效果和原來一樣。

4、總結

  • 對axios的二次封裝可以統一前後端互動的請求/響應資料型別,統一處理http錯誤碼和自定義的code,避免在元件中頻繁的判斷,以及code碼的使用混亂。
  • 對api的集中管理和按需引用有助於專案管理和重構,程式碼的複用,實際專案開發時可以按模組對api進行劃分,結構清晰。

相關文章