vue項目中axios的封裝

1.安裝

1 npm install axios --save

2.新建http.js,封裝攔截器以及多種請求方式

 1 import axios from 'axios';
 2 import { Message } from 'element-ui';
 3 
 4 // 請求攔截器
 5 axios.interceptors.request.use( 
 6   config => {
 7     //發送請求前需要做什么,一般檢查token
 8     return config;
 9   },
10 
11   error => {
12    // 對請求錯誤做些什么
13     return Promise.reject(error);
14   }
15 )
16 
17 // 響應攔截器
18 axios.interceptors.response.use(
19   response => {
20     // 對響應數據做點什么,一般是判斷狀態碼,進行一些邏輯處理
21     return response;
22   },
23   error => {
24     // 對響應錯誤做點什么
25     return Promise.reject(error) ;
26   };
27 )
28 
29 //GET請求
30 export const $get = function (url, params) {
31   return new Promise((resolve, reject) => {
32     axios({
33       method: 'get',//請求方式
34       url: url,         //請求url
35       headers:...   //請求頭設置,
36       params,      //請求參數
37       baseURL: ...//基礎地址,將自動加在 `url` 前面
38     }).then(res => {
39       resolve(res)
40     }).catch(error => {
41       reject(error)
42     })
43   })
44 }
45 
46 //POST請求
47 export const $post = function (url, param) {
48   return new Promise((resolve, reject) => {
49     axios({
50       method: 'post',
51       url: url,
52       headers: ...,
53       data: param ? param : "", //數據體
54       baseURL: ...
55     }).then(res => {
56       resolve(res)
57     }).catch(error => {
58       reject(error)
59     })
60   })
61 }
62 
63 //DELETE請求
64 export const $delete = function (url, params) {
65   return new Promise((resolve, reject) => {
66     axios({
67       method: 'delete',
68       url: url,
69       headers: ...,
70       params,
71       baseURL: ...
72     }).then(res => {
73       resolve(res)
74     }).catch(error => {
75       reject(error)
76     })
77   })
78 }
79 
80 //PUT請求
81 export const $put = function (url, params) {
82   return new Promise((resolve, reject) => {
83     axios({
84       method: 'put',
85       url: url,
86       headers: ...,
87       data: params ? params : "",
88       baseURL: ...
89     }).then(res => {
90       resolve(res)
91     }).catch(error => {
92       reject(error)
93     })
94   })
95 }
View Code

3.接口的封裝---新建user.js

 1 //導入請求方式
 2 import {
 3   $get,
 4   $post,
 5   $update,
 6   $delete
 7 } from '../http'; 
 8 
 9 //獲取用戶信息接口
10 const getUser = data => {
11   return $get('/api/getUserInfo', data);
12 };
13 
14 //其他接口類似
15 ....
16 ....
17 ....
18 
19 //導出接口
20 export default {
21 getUser,
22 ...,
23 ...
24 }

4.封裝所有接口文件---創建index.js

1 //導入接口文件
2 import user from './user'
3 
4 //導出
5 export default {
6   user,
7   ...,
8   ...
9 }

5.axios的所有內容封裝(該index.js即為下圖目錄結構選中的js文件)

目錄結構

6.在組件中的使用

 1 methods:{
 2     //方法的調用,傳入數據
 3     getUser(){
 4          this.$api.user.getUser({userId:100010})
 5             .then(
 6                 res=>{
 7                 //請求結果,進行相應的邏輯處理
 8                 },
 9                 error=>{
10                 //請求失敗后的邏輯處理
11                 })
12       }    
13 }            

?

轉載于:https://www.cnblogs.com/yy136/p/9855039.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/450737.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/450737.shtml
英文地址,請注明出處:http://en.pswp.cn/news/450737.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【2022】Java基礎面試真題

文章目錄1. Java基礎1.1 為什么Java代碼可以實現一次編寫、到處運行?1.2 一個Java文件里可以有多個類嗎(不含內部類)?1.3 說一說你對Java訪問權限的了解1.4 介紹一下Java的數據類型1.5 int類型的數據范圍是多少?1.6 請…

關于 Virtual SAN/VSAN 的常見問題解答

問:VSAN需要使用 SSD,它有什么用途呢? 答:SSD 用于讀取緩存 (70%) 和寫入緩沖 (30%)。每次寫入都會先轉到 SSD,稍后再取消暫存到 HDD。 ? 問:創建 VSAN 虛擬機存儲策略時,何時應使用“允許的故…

IntelliJ IDEA 中 右鍵新建時,選項沒有Java class的解決方法和具體解釋

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 我是在別人問我的時候,才發現還可以有這個問題,主要是他新項目直接打開,什么都沒配置,就打…

設計模式大集錦 程序員面試全攻略

摘要:無論你是參與Java面試還是C#面試,設計模式和軟件設計問題在程序員面試中是必不可少的一部分。編程和設計技兩者相得益彰,一名出色的程序員也是一名出色的設計師,他們懂得如何利用代碼來解決問題或者軟件設計,但是…

NOIP2018劃水記

Day -INF: 提前兩周左右停的課吧,每天過著正常的機房生活,每天充滿了歡樂。中間夾著籃球賽,qmcp大展神威(%%%),MVP當之無愧,我跟著我們班一群菜雞劃水水出了季軍(汗&…

多線程鎖,線程池,消費者生產者模型

鎖是怎么存在的? 在python建立之初,開發者目的是為了快速把語言開發出來,如果加上GIL(c語言加鎖),切換時按照100條字節指令來進行線程間的切換 為什么加鎖? 非線程安全,控制一段代碼 1.lock threading.BoundedSemaphore一次可以限制關卡,限制通行次數,不過這個是寫死的 1 im…

【2022】多線程并發編程面試真題

文章目錄4. 多線程4.1 創建線程有哪幾種方式?4.2 說說Thread類的常用方法4.3 run()和start()有什么區別?4.4 線程是否可以重復啟動,會有什么后果?4.5 介紹一下線程的生命周期4.6 如何實現線程同步?4.7 說一說Java多線程…

蘋果面試8大難題及答案

摘要:蘋果這樣的公司通常會在面試過程中向求職者拋出一些邏輯的問題來考研面試者,所以,如果你對進入蘋果感興趣,或者向往類似的公司,又或者只是對邏輯問題感興趣,這些面試難題值得你仔細研究。 導讀&#x…

idea自動導入jar包的快捷鍵

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 見:http://blog.csdn.net/u014771464/article/details/52330254 altenter(光標緊跟在類的后面)

ROS系統玩轉自主移動機器人(3)-- 開源機器人結構介紹

ROS系統玩轉自主移動機器人(3)-- 開源機器人結構介紹 本機器人機械結構設計相關的所有設計文件下載地址為:傳送門 其中包含:三維造型設計文件(所有零件裝配效果)(tips:基于Solidwork…

【2022】JVM常見面試真題詳解

文章目錄5. JVM5.1 JVM包含哪幾部分?5.2 JVM是如何運行的?5.3 Java程序是怎么運行的?5.4 本地方法棧有什么用?5.5 沒有程序計數器會怎么樣?5.6 說一說Java的內存分布情況5.7 類存放在哪里?5.8 局部變量存放…

Linux 基本操作--文件查看 (day3)

一、查看文件-----cat (詳情參考:http://blog.sina.com.cn/s/blog_52f6ead0010127xm.html) 語法結構: cat 查看方式 文件 cat -A : show all 顯示所有內容,相當于-vET [rootlocalhost tmp]# cat -A /etc/profile #注釋:查看/erx/目錄下profile文件的內容 cat -b  :對非空…

如何在面試時寫出高質量的代碼

摘要:有些程序員由于平時沒有養成良好的編程習慣,在面試時寫出的代碼質量不高,最終遺憾地與心儀的公司和職位失之交臂。如何在面試時能寫出高質量的代碼,是很多程序員關心的問題。 程序員在職業生涯中難免要接受編程面試。有些程序…

IntelliJ IDEA添加jar包

見:http://blog.csdn.net/a153375250/article/details/50851049 以JDBC-MySQL驅動包為例 1、在IntelliJ IDEA中打開要添加jar包的Project 2、File – Project Structure如下圖 3、選擇Moudules – 再選擇Dependencies如下圖 4、選中Moudule source – 然后點擊2處號…

Python3 與 C# 并發編程之~ 進程篇

上次說了很多Linux下進程相關知識,這邊不再復述,下面來說說Python的并發編程,如有錯誤歡迎提出~ 如果遇到聽不懂的可以看上一次的文章:https://www.cnblogs.com/dotnetcrazy/p/9363810.html 官方文檔:https…

11月12號 用戶登錄輸入密碼錯誤達到指定次數后,鎖定賬戶 004

用戶表里添加兩個屬性 連續密碼輸錯次數private Integer loginFailCount;/** 登錄失敗禁用時間 */ private Date missDate; / 如果登錄錯誤次數大于5次 規定時間內禁止登錄if(dbUser.getLoginFailCount() ! null && dbUser.getLoginFailCount() > 3){if(DateUtils.…

Goobuntu:谷歌的內部桌面系統

摘要:大多數Linux用戶都知道Google用Linux作為它們的桌面和服務器端操作系統,有的人可能還知道Google選擇的是定制的Ubuntu——Goobuntu,但在此之前幾乎沒有Google外部人員了解他們究竟是如何使用Ubuntu的,8月29日,Tho…

Springboot 之 Hibernate自動建表(Mysql)

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 引入Maven依賴包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-…

Spring全家桶面試真題

文章目錄1. Spring Boot1.1 說說你對Spring Boot的理解1.2 Spring Boot Starter有什么用&#xff1f;1.3 介紹Spring Boot的啟動流程1.4 Spring Boot項目是如何導入包的&#xff1f;1.5 請描述Spring Boot自動裝配的過程1.6 說說你對Spring Boot注解的了解2. Spring2.1 請你說說…

WSDL測試webservice接口記錄

收到一個事情&#xff0c;需要對接第三方API&#xff0c;對方給了個service&#xff0c;看了一下&#xff0c;原來是webservices的。 上一次測試webervice的接口&#xff0c;還是至少八九年前的時候了&#xff0c;這種相對比較老舊的也好久不在使用。 于是&#xff0c;簡單搞了…