溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么用vue封裝axios請(qǐng)求

發(fā)布時(shí)間:2021-06-04 14:35:57 來源:億速云 閱讀:129 作者:小新 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)怎么用vue封裝axios請(qǐng)求,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

其實(shí)vue封裝axios是很簡(jiǎn)單的

首先 在src路徑下建http文件夾 并且創(chuàng)建api.js env.js request.js 這三個(gè)文件

怎么用vue封裝axios請(qǐng)求

env.js文件

這個(gè)文件主要就是封裝我們的公共地址

export default {
// 開發(fā)環(huán)境
dev: {
    baseUrl: "開發(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ù) 無參數(shù)的情況下也可以不寫
});
}

最后是在頁面中的引用

那個(gè)頁面需要請(qǐng)求數(shù)據(jù)  就引入相應(yīng)的方法 比如我的首頁需要引入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>

關(guān)于“怎么用vue封裝axios請(qǐng)求”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI