欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue+axios實(shí)現(xiàn)統(tǒng)一接口管理的方法

 更新時(shí)間:2018年07月23日 09:55:38   作者:ZhangCui  
這篇文章主要介紹了Vue+axios實(shí)現(xiàn)統(tǒng)一接口管理的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

通過axios請(qǐng)求接口已經(jīng)很簡(jiǎn)單了,但最近在做一個(gè)vue項(xiàng)目,想著把a(bǔ)xios請(qǐng)求再封裝一下,這樣api就可以只在一處配置成方法,在使用的時(shí)候直接調(diào)用這個(gè)方法。

但咱們不用每個(gè)接口都定義成一個(gè)啰嗦的axios請(qǐng)求方法,既然是想簡(jiǎn)單點(diǎn),就盡量只在一處完成簡(jiǎn)單的配置。

1、配置api接口

將同一模塊的接口放在一個(gè)文件下,比如我在src的services下定義了一個(gè)global.js作為全局服務(wù)的配置,在它里面配置的api可以作為這個(gè)服務(wù)的方法。

比如:

name字段將作為之后被調(diào)用的方法名,但這個(gè)只是一個(gè)單純的對(duì)象,現(xiàn)在我們定義方法將它轉(zhuǎn)為方法。

2、將接口配置的數(shù)組對(duì)象轉(zhuǎn)化為方法

import axios from "axios";
const withAxios = apiConfig => {
 const serviceMap = {};
 apiConfig.map(({ name, url, method }) => {
 serviceMap[name] = async function(data = {}) {
  let key = "params";
  if (method === "post" || method === "put") {
  key = "data";
  }
  return axios({
  method,
  url: "/api" + url,
  [key]: data
  });
 };
 });
 return serviceMap;
};
export default withAxios;

我們?cè)趗tils下定義了一個(gè)通用的方法withAxios,這個(gè)方法的作用是將api配置文件轉(zhuǎn)化為包含方法的一個(gè)對(duì)象。

3、在api配置文件中使用withAxios

import withAxios from "../utils/withAxios";
const apiConfig = [
 {
 name: "userLogin",
 url: "/login",
 method: "get"
 },
 {
 name: "getUserInfo",
 url: "/login/user",
 method: "get"
 },
 {
 name: "getDeptList",
 url: "/login/department",
 method: "get"
 }
];
export default withAxios(apiConfig);

直接export出包裝后的對(duì)象即可。

4、在vuex中使用

想在vuex中調(diào)用某個(gè)api,首先import剛才導(dǎo)出的對(duì)象

import GlobalService from "@/services/global";

在action中調(diào)用某個(gè)接口:

const { data } = await GlobalService.userLogin(payload);

這樣就完事了。之后只需要配置-調(diào)用這么兩步就可以完成接口調(diào)用。

5、axios的其他配置

我們可以在utils的withAxios中順便對(duì)axios做一些通用的設(shè)置。

比如每次請(qǐng)求頭中都自動(dòng)帶上鑒權(quán):

axios.defaults.headers.common["Authorization"] = getCookie("jwt") || "";
// 注意:此處只會(huì)在web應(yīng)用初始化時(shí)配置,在登錄成功后需重新配置Authorization。

比如使用攔截器對(duì)返回對(duì)象做統(tǒng)一處理:

axios.interceptors.response.use(response => {
 const { data } = response;
 if (data.status === -2) {
 Vue.prototype.$Message.error(`無效的登錄信息或登錄已失效,請(qǐng)重新登錄`);
 delCookie("jwt");
 router.push({ path: "/login" });
 }
 if (data.status === -1) {
 Vue.prototype.$Message.error(`發(fā)生錯(cuò)誤[${data.message}]`);
 }
 return response;
});

總結(jié)

以上所述是小編給大家介紹的Vue+axios實(shí)現(xiàn)統(tǒng)一接口管理的方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Vue中定義全局變量與常量的各種方式詳解

    Vue中定義全局變量與常量的各種方式詳解

    Vue.js 如何添加全局常量或變量? 這是最近一個(gè)同事問的問題,發(fā)現(xiàn)很多朋友對(duì)這塊不熟悉,所以下面這篇文章主要給大家介紹了關(guān)于Vue中定義全局變量與常量的各種方式,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08
  • Vue常見面試題整理【值得收藏】

    Vue常見面試題整理【值得收藏】

    本文是小編給大家收藏整理的Vue常見面試題,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-09-09
  • vue uniapp實(shí)現(xiàn)分段器效果

    vue uniapp實(shí)現(xiàn)分段器效果

    這篇文章主要為大家詳細(xì)介紹了vue uniapp實(shí)現(xiàn)分段器效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 淺談mvvm-simple雙向綁定簡(jiǎn)單實(shí)現(xiàn)

    淺談mvvm-simple雙向綁定簡(jiǎn)單實(shí)現(xiàn)

    本篇文章主要介紹了淺談mvvm-simple雙向綁定簡(jiǎn)單實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-04-04
  • vue路由跳轉(zhuǎn)到新頁面實(shí)現(xiàn)置頂

    vue路由跳轉(zhuǎn)到新頁面實(shí)現(xiàn)置頂

    這篇文章主要介紹了vue路由跳轉(zhuǎn)到新頁面實(shí)現(xiàn)置頂問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • vue項(xiàng)目中的.env文件加載方式

    vue項(xiàng)目中的.env文件加載方式

    在Vue項(xiàng)目中,通過.env文件配置環(huán)境變量,支持不同環(huán)境下加載不同配置,Vite通過import.meta.env向應(yīng)用暴露環(huán)境變量,支持基本URL、開發(fā)環(huán)境和生產(chǎn)環(huán)境識(shí)別等,.env文件可設(shè)置環(huán)境優(yōu)先級(jí),修改后需重啟生效,TypeScript可通過增加文件獲取智能提示
    2024-10-10
  • Vue動(dòng)態(tài)設(shè)置img的src不生效的問題解決

    Vue動(dòng)態(tài)設(shè)置img的src不生效的問題解決

    本文主要介紹了Vue動(dòng)態(tài)設(shè)置img的src不生效的問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • 關(guān)于el-table表格組件中插槽scope.row的使用方式

    關(guān)于el-table表格組件中插槽scope.row的使用方式

    這篇文章主要介紹了關(guān)于el-table表格組件中插槽scope.row的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Vue.extend構(gòu)造器的詳解

    Vue.extend構(gòu)造器的詳解

    這篇文章主要介紹了Vue.extend構(gòu)造器的詳解的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Vue 2閱讀理解之initRender與callHook組件詳解

    Vue 2閱讀理解之initRender與callHook組件詳解

    這篇文章主要為大家介紹了Vue 2閱讀理解之initRender與callHook組件詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08

最新評(píng)論