如何用vue封裝axios請(qǐng)求
其實(shí)vue封裝axios是很簡(jiǎn)單的
首先 在src路徑下建http文件夾 并且創(chuàng)建api.js env.js request.js 這三個(gè)文件

env.js文件
這個(gè)文件主要就是封裝我們的公共地址
export default {
// 開(kāi)發(fā)環(huán)境
dev: {
baseUrl: "開(kāi)發(fā)環(huán)境公共地址"
},
// 測(cè)試環(huán)境test
test: {
baseUrl: "測(cè)試環(huán)境公共地址"
},
//線上接口
prod: {
baseUrl: "線上環(huán)境公共地址"
}
};
request.js 文件
這里主要就是創(chuàng)建axios 以及封裝請(qǐng)求攔截和相應(yīng)攔截
import axios from "axios";
import env from "./env";
//這里是私有域名 但是也可以不寫
var vipUrl = "/app";
// 創(chuàng)建axios實(shí)例
const service = axios.create({
//這里拿線上接口測(cè)試
baseUrl: env.prod.baseUrl + vipUrl,
headers:{},//請(qǐng)求頭
settimeout:2000,//超時(shí)時(shí)間
});
// 添加請(qǐng)求攔截器
service.interceptors.request.use(
config => {
// 在發(fā)送請(qǐng)求之前做些什么
config.headers["deviceType"] = "H5";
console.log("請(qǐng)求的數(shù)據(jù):", config);
return config;
},
error => {
// 對(duì)請(qǐng)求錯(cuò)誤做些什么
return Promise.reject("出錯(cuò)", error);
}
);
// 添加響應(yīng)攔截器
service.interceptors.response.use(
response => {
// 對(duì)響應(yīng)數(shù)據(jù)做點(diǎn)什么
// console.log("返回的數(shù)據(jù)", response);
return response;
},
error => {
// 對(duì)響應(yīng)錯(cuò)誤做點(diǎn)什么
return Promise.reject(error);
}
);
export default service;
api.js
這個(gè)文件中主要是需要的接口地址
//引入request.js文件
import request from "./request";
// 輪播
export function getBanners(data) {
return request({
url: "/banner",//這個(gè)地址是去掉公共地址和私有域名之后剩下的地址
method: "GET",//請(qǐng)求方式 支持多種方式 get post put delete 等等
data//發(fā)送請(qǐng)求要配置的參數(shù) 無(wú)參數(shù)的情況下也可以不寫
});
}
最后是在頁(yè)面中的引用
那個(gè)頁(yè)面需要請(qǐng)求數(shù)據(jù) 就引入相應(yīng)的方法 比如我的首頁(yè)需要引入banner
<script>
//引入需要的接口
import { getBanners } from "../http/api";
export default {
name: "Home",
components: {},
mounted() {
//直接使用 .then 是請(qǐng)求成功的回調(diào) .catch是請(qǐng)求失敗的回調(diào)
getBanners()
.then(result => {
window.console.log("111", result);
})
.catch(err => {
window.console.log("222", err);
});
},
methods: {}
};
</script>
以上就是如何用vue封裝axios請(qǐng)求的詳細(xì)內(nèi)容,更多關(guān)于用vue封裝axios請(qǐng)求的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
vuecli項(xiàng)目構(gòu)建SSR服務(wù)端渲染的實(shí)現(xiàn)
這篇文章主要介紹了vuecli項(xiàng)目構(gòu)建SSR服務(wù)端渲染的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
vue-element-admin開(kāi)發(fā)教程(v4.0.0之前)
本文主要介紹了vue-element-admin開(kāi)發(fā)教程(v4.0.0之前),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
Vue實(shí)現(xiàn)下拉滾動(dòng)加載數(shù)據(jù)的示例
這篇文章主要介紹了Vue實(shí)現(xiàn)下拉滾動(dòng)加載數(shù)據(jù)的示例,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下2021-04-04
詳解用vue-cli來(lái)搭建vue項(xiàng)目和webpack
本篇文章主要介紹了詳解用vue-cli來(lái)搭建vue項(xiàng)目和webpack,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04
Vue?element?ui用戶展示頁(yè)面的實(shí)例
這篇文章主要介紹了Vue?element?ui用戶展示頁(yè)面的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
vue常用事件v-on:click詳解事件對(duì)象,事件冒泡,事件默認(rèn)行為
這篇文章主要介紹了vue常用事件之v-on:click?以及事件對(duì)象,事件冒泡,事件默認(rèn)行為,其實(shí)v-on后面跟的不止是click事件也可以是其他的事件,用法均相似,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
vue實(shí)現(xiàn)移動(dòng)端多格輸入框
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)移動(dòng)端多格輸入框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10

