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

vue axios 二次封裝的示例代碼

 更新時間:2017年12月08日 11:05:17   作者:Justnull  
本篇文章主要介紹了vue axios 二次封裝的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

這段時間告訴項目需要,用到了vue。

剛開始搭框架的時候用的是vue-resource后面看到官方推薦axios就換過來了 順便封裝了一下

//引入axios
import axios from 'axios'

let cancel ,promiseArr = {}
const CancelToken = axios.CancelToken;
//請求攔截器
axios.interceptors.request.use(config => {
 //發(fā)起請求時,取消掉當前正在進行的相同請求
 if (promiseArr[config.url]) {
  promiseArr[config.url]('操作取消')
  promiseArr[config.url] = cancel
 } else {
  promiseArr[config.url] = cancel
 }
  return config
}, error => {
 return Promise.reject(error)
})

//響應攔截器
axios.interceptors.response.use(response => {
 return response
}, error => {
 return Promise.resolve(error.response)
})

axios.defaults.baseURL = '/api'
//設置默認請求頭
axios.defaults.headers = {
 'X-Requested-With': 'XMLHttpRequest'
}
axios.defaults.timeout = 10000

export default {
 //get請求
 get (url,param) {
  return new Promise((resolve,reject) => {
  axios({
   method: 'get',
   url,
   params: param,
   cancelToken: new CancelToken(c => {
   cancel = c
   })
  }).then(res => {
   resolve(res)
  })
  })
 },
 //post請求
 post (url,param) {
  return new Promise((resolve,reject) => {
  axios({
   method: 'post',
   url,
   data: param,
   cancelToken: new CancelToken(c => {
   cancel = c
   })
  }).then(res => {
   resolve(res)
  })
  })
  }
 }

說明

1、為防止發(fā)起請求時,當前正在進行的相同請求,在請求攔截器中加入了hash判斷,將相同請求url攔截

2、將axios中get,post公共配置抽離出來

axios.defaults.baseURL = '/api'
//設置默認請求頭
axios.defaults.headers = {
 'X-Requested-With': 'XMLHttpRequest'
}
axios.defaults.timeout = 10000

3、get,post請求的封裝 可能你會問,這里的axios返回的就是promise對象,為什么還要再次對get,post封裝一次promise.因為我這邊的話,在開發(fā)中使用async await會出現(xiàn)數(shù)據(jù)請求失敗的情況,報的錯就是返回的不是promise對象。(ps:可async await返回的就是promise呀,這個問題后續(xù)再搞一下)就直接return了一個promise對象,以避免上面的錯誤。下面是請求接口的一個例子

import req from '../api/requestType'
/**
 * 拼團詳情
 */
export const groupDetail = param => {
 return req.get('/RestHome/GroupDetail',param)
}

下面是數(shù)據(jù)的獲取

async getData() {
 const params = {
  TopCataID: 0,
  pageNumber: this.pageNumber,
  pageSize: this.pageSize
 }
 const res = await groupList(params)
},

到這里我們就簡單的封裝了一下適合自己項目的axios

封裝理由:

1、可以和后端商量好錯誤碼在這統(tǒng)一提示統(tǒng)一處理,省去不必要的麻煩

2、如果做接口全報文加解密都可以在此處理

接口統(tǒng)一歸類: 

const serviceModule = { 
 getLocation: { 
 url: ' service/location/transfor', 
 method: 'get' 
 } 
} 
const ApiSetting = {...serviceModule } 
 
export default ApiSetting 

歸類好處:

1、后期接口升級或者接口名更改便于維護

http調(diào)用:

<script> 
import http from "../../lib/http.js"; 
import ApiSetting from "../../lib/ApiSetting.js"; 
export default { 
 created: function() { 
 http(ApiSetting.getLocation,{"srChannel": "h5",}) 
 .then((res)=>{ 
  console.log(res) 
 },(error)=>{ 
  console.log(error)  
 }) 
 }, 
 methods: { 
 
 } 
} 
</script> 

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 常見的5種Vue組件通信方式總結

    常見的5種Vue組件通信方式總結

    在?Vue.js?中,組件通信是開發(fā)過程中非常重要的一部分,它涉及到不同組件之間的數(shù)據(jù)傳遞和交互,本文將介紹如何實現(xiàn)父子組件之間的有效通信,并盤點了常見的5種Vue組件通信方式總結,需要的朋友可以參考下
    2024-03-03
  • 如何利用vue實現(xiàn)登陸界面及其跳轉詳解

    如何利用vue實現(xiàn)登陸界面及其跳轉詳解

    在開發(fā)中我們經(jīng)常遇到這樣的需求,需要用戶直接點擊一個鏈接進入到一個頁面,下面這篇文章主要給大家介紹了關于如何利用vue實現(xiàn)登陸界面及其跳轉的相關資料,需要的朋友可以參考下
    2023-04-04
  • vue.js學習筆記之綁定style樣式和class列表

    vue.js學習筆記之綁定style樣式和class列表

    數(shù)據(jù)綁定一個常見需求是操作元素的 class 列表和它的內(nèi)聯(lián)樣式。這篇文章主要介紹了vue.js綁定style和class的相關資料,需要的朋友可以參考下
    2016-10-10
  • vue實現(xiàn)抖音時間轉盤

    vue實現(xiàn)抖音時間轉盤

    這篇文章主要為大家詳細介紹了vue實現(xiàn)抖音時間轉盤,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • element-ui動態(tài)級聯(lián)選擇器回顯問題詳解(二十多行代碼搞定)

    element-ui動態(tài)級聯(lián)選擇器回顯問題詳解(二十多行代碼搞定)

    大家在使用element-ui的時候肯定會遇到這樣一個問題,就是在你使用級聯(lián)選擇器的回顯問題,下面這篇文章主要給大家介紹了關于element-ui動態(tài)級聯(lián)選擇器回顯問題的相關資料,需要的朋友可以參考下
    2023-03-03
  • vue中如何簡單封裝axios淺析

    vue中如何簡單封裝axios淺析

    Axios 毋庸多說大家在前端開發(fā)中常用的一個發(fā)送 HTTP 請求的庫,用過的都知道,篇文章主要給大家介紹了關于vue中如何簡單封裝axios的相關資料,需要的朋友可以參考下
    2021-06-06
  • 詳解如何在Vue組件方法中加載和使用匿名函數(shù)

    詳解如何在Vue組件方法中加載和使用匿名函數(shù)

    在Vue.js的開發(fā)過程中,組件方法的定義和調(diào)用是非常常見的,有時候,為了響應事件或其他操作,我們需要在組件的方法中使用匿名函數(shù),本文將深入探討如何在Vue組件的方法中加載和使用匿名函數(shù),并提供詳細的代碼示例和解釋,幫助開發(fā)者更好地理解和應用這些技術
    2024-09-09
  • 利用vue + koa2 + mockjs模擬數(shù)據(jù)的方法教程

    利用vue + koa2 + mockjs模擬數(shù)據(jù)的方法教程

    這篇文章主要給大家介紹了關于利用vue + koa2 + mockjs模擬數(shù)據(jù)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-11-11
  • vue+golang實現(xiàn)上傳微信頭像功能

    vue+golang實現(xiàn)上傳微信頭像功能

    這篇文章主要介紹了vue+golang實現(xiàn)上傳微信頭像功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-10-10
  • Vue中$attrs與$listeners的使用教程

    Vue中$attrs與$listeners的使用教程

    這篇文章主要介紹了Vue中$attrs與$listeners的使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-11-11

最新評論