JS中封裝axios來(lái)管控api的2種方式
前言:我們?cè)陂_(kāi)發(fā)項(xiàng)目的時(shí)候,往往要處理大量的接口.并且在測(cè)試環(huán)境 開(kāi)發(fā)環(huán)境 生產(chǎn)環(huán)境使用的接口baseurl都不一樣 這時(shí)候如果在開(kāi)發(fā)環(huán)境完成之后切換每一個(gè)接口的baseurl會(huì)變的非常的麻煩,(要去每一個(gè)發(fā)出請(qǐng)求的頁(yè)面都要去修改地址)
所以為了更好的管控這些api,我們需要自己封裝一個(gè)axios定義統(tǒng)一的接口baseurl 這樣在環(huán)境的切換的時(shí)候更好的管控和修改.話不多說(shuō)上代碼!!!
自己創(chuàng)建一個(gè)api文件夾 即可
import axios from 'axios' 為了處理java字符串問(wèn)題 import qs from 'qs' 創(chuàng)建一個(gè)axios實(shí)例 在其中設(shè)置超時(shí)時(shí)間和響應(yīng)頭 const http = axios.create({ baseURL: process.env.VUE_APP_MOCK_DATA_URL, // api 的 base_url timeout: 3000, headers: { 'Content-Type': 'application/json;charset=utf-8' } }) /** * 請(qǐng)求攔截 可以在發(fā)送請(qǐng)求的時(shí)候加上判斷信息 */ http.interceptors.request.use(config => { ***** return config }, error => { return Promise.reject(error) }) /** * 響應(yīng)攔截 可以對(duì)傳回的數(shù)據(jù)做出判斷 */ http.interceptors.response.use(response => { return response }, error => { return Promise.reject(error) })
將這個(gè)封裝好的axios 暴露出去
export default http
在main.js中引入并且掛載到原型對(duì)象上
import http from '@/api/api.js' Vue.prototype.$http = http
第一種封裝的方式一般就是對(duì)于api數(shù)量不是特別多的時(shí)候 復(fù)雜層級(jí)不高的情況 這樣封裝完全可以
第二種方式
'use strict'
同樣的也需要引入這兩個(gè)包
import axios from 'axios' import qs from 'qs' // 設(shè)置攔截器 默認(rèn)請(qǐng)求url得前綴 // axios.defaults.baseURL = process.env.NODE_ENV === 'production' ? '/custInfo' : // '127.0.0.1:8888', // axios.interceptors.request.use(config => { // // // loading // return config // }, error => { // return Promise.reject(error) // }) // // axios.interceptors.response.use(response => { // return response // }, error => { // return Promise.resolve(error.response) // }) export default { post(url, data) { return new Promise((resolve, reject) => { axios({ method: 'post', url, // qs這個(gè)插件主要是為了解決java后臺(tái)接受到得參數(shù)必須是字符串 data: qs.stringify(data), headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' } }).then((res) => { resolve(res) }).catch((error) => { reject(error) }) }) }, get (url, params) { return new Promise((resolve, reject) => { axios({ method: 'get', url, params, // get 請(qǐng)求時(shí)帶的參數(shù) }).then((res) => { resolve(res) }).catch((error) => { reject(error) }) }) } }
這種封裝好之后,就可以在創(chuàng)建一個(gè)文件夾 然后把所有的接口都寫在一起
getCustValue(params) { return $http.post('/custOverview/getCustValue', params); }, getTacntrt(params) { return $http.get('/dict/getTacntrtMgmtMsgMonth', params); }, query(params) { return $http.post('/indexManager/queryVipFlowCount', params); }
然后一一列舉 就可以非常好的梳理api
總結(jié)
以上所述是小編給大家介紹的JS中封裝axios來(lái)管控api的2種方式,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
JavaScript獲取客戶端計(jì)算機(jī)硬件及系統(tǒng)等信息的方法
本文為大家詳細(xì)介紹下如何使用JavaScript獲取客戶端計(jì)算機(jī)硬件及系統(tǒng)等信息,下面有個(gè)不錯(cuò)的示例,感興趣的朋友可以參考下2014-01-01JavaScript實(shí)現(xiàn)瀑布動(dòng)畫(huà)
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)瀑布動(dòng)畫(huà),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06JS判斷文本框內(nèi)容改變事件的簡(jiǎn)單實(shí)例
本篇文章主要是對(duì)JS判斷文本框內(nèi)容改變事件的簡(jiǎn)單實(shí)例進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-03-03js判斷出兩個(gè)字符串最大子串的函數(shù)實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇js判斷出兩個(gè)字符串最大子串的函數(shù)實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11神奇!js+CSS+DIV實(shí)現(xiàn)文字顏色漸變效果
很神奇!js+CSS+DIV實(shí)現(xiàn)文字顏色漸變效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-03-03一文帶你簡(jiǎn)單封裝JS下的異步任務(wù)對(duì)象
我們?cè)跓倪^(guò)程中去干了別的事情,就屬于異步模式,異步模式中不會(huì)等待異步任務(wù)的結(jié)束才開(kāi)始執(zhí)行下一個(gè)同步的任務(wù),都是開(kāi)啟過(guò)后就立即執(zhí)行下一個(gè)任務(wù),下面這篇文章主要給大家介紹了如何通過(guò)一文帶你簡(jiǎn)單封裝JS下的異步任務(wù)對(duì)象的相關(guān)資料,需要的朋友可以參考下2022-11-11JavaScript實(shí)現(xiàn)的一個(gè)倒計(jì)時(shí)的類
這篇文章主要介紹了JavaScript實(shí)現(xiàn)的一個(gè)倒計(jì)時(shí)的類,本文直接給出demo代碼,需要的朋友可以參考下2015-03-03點(diǎn)擊隱藏頁(yè)面左欄或右欄實(shí)現(xiàn)js代碼
通過(guò)點(diǎn)擊來(lái)隱藏頁(yè)面左欄或右欄,此效果在實(shí)際應(yīng)用中很常見(jiàn),接下來(lái)為大家詳細(xì)介紹下實(shí)現(xiàn)代碼,感興趣的朋友可以參考下哈,希望可以幫助到你2013-04-04對(duì)js eval()函數(shù)的一些見(jiàn)解
下面小編就為大家?guī)?lái)一篇對(duì)js eval()函數(shù)的一些見(jiàn)解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08