前端請求封裝(基於 axios ts)

2021-10-08 03:15:07 字數 1481 閱讀 8108

處理統一邏輯,包括:異常捕獲、資料上報、狀態碼處理、請求快取、csrf 處理、跨域處理、token 生命週期管理等

抽象這一層後,可以做到隨意更換請求庫(axios、fetch 甚至 xhr),但是對外用法不變

提供快取能力,當傳參不變時,可選擇快取結果,用mem實現,config.cacheable控制

異常或錯誤,統一彈 notice。提供強制不 notice 的能力,config.preventnotice控制

擴充套件axios.config引數,如上述提到的能力,可通過 config 引數實現控制

統一返回 axios 的response.data,方便日常編碼

為適應上述改變,ts宣告也需要相應變化

import axios,

from

'axios'

;import mem from

'mem'

;// config 擴充套件,控制全域性彈窗、快取等開關

export

inte***ce

requestconfig

extends

axiosrequestconfig

export

const axiosbase = axios.

create(,

});axiosbase.interceptors.response.

use(

(response)

=>

,(error)

=>

default:}

return promise.

reject

(error);}

);const cachedget =

mem(axiosbase.post,$`

,});

export

function

get<

t= any>

(url: string, config?

: requestconfig)

: promise<

t>

return axiosbase.

get(url, config);}

const cachedpost =

mem(axiosbase.post,$$

`,})

;export

function post<

t= any>

( url: string,

data?

: any,

config?

: requestconfig

): promise<

t>

return axiosbase.

post

(url, data, config)

;}

基於vue封裝axios請求

import axios from axios import qs from qs const url 訪問位址網域名稱 axios.interceptors.request.use config 拼接訪問位址 config.url url config.url return config erro...

vue基於axios封裝網路請求

封裝核心方法 url 請求引數 請求方式 請求成功或者失敗的處理 請求前請求後處理 網路模組需要提供的功能 匯入axios import axios from axios 匯入請求方法 import request from configrequest import configurl from c...

簡單的基於Vue axios請求封裝

具體實現思路 封裝之前需要用npm安裝並引入axios,使用乙個單獨的js模組作為介面請輸出物件,然後export dafult 這個物件。1.首先我們需要在vue例項的原型prototype中擴充套件乙個 http的方法取代axios vue.prototype.http axios這樣子就可以在...