最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vux+Axios攔截器增加loading的問題及實(shí)現(xiàn)方法

 更新時(shí)間:2018年11月08日 14:05:39   作者:茶樹蝦  
這篇文章主要介紹了Vux+Axios攔截器增加loading的問題及實(shí)現(xiàn)方法,文中通過實(shí)例代碼介紹了vue中使用axios的相關(guān)知識,需要的朋友可以參考下

很多時(shí)候,我們在頁面使用Ajax刷新時(shí)候,會希望它出現(xiàn)loading的圖標(biāo),讓用戶體驗(yàn)更好一些。那么如果我們每次在Axios里面進(jìn)行請求,都要顯示loading圖標(biāo)的話,那么沒有一個(gè)全局的方法的話,勢必會造成代碼冗余的問題。有什么方法可以實(shí)現(xiàn)這個(gè)方法呢?

這里,我們就要用到Axios的請求攔截器與相應(yīng)攔截器了

首先,我們在請求攔截器里面增加一個(gè)VUX的loading組件

axios.interceptors.request.use(
config => {
//請求攔截器,調(diào)用loading插件
// 顯示loading
// 判斷是否重復(fù)提交請求,也就是loading是否還存在,如果存在則不顯示新的loading
let isShow = window.app.$vux.loading.isVisible()
if(!isShow&&config.showLoading){
  window.app.$vux.loading.show({
  text: 'Loading'
  })
}
config.data = JSON.stringify(config.data);
config.headers = {
  'Content-Type': 'application/json',
}
return config;
},
error => {
return Promise.reject(err);
}
);

整個(gè)數(shù)據(jù)里面,我們看到了里面有一個(gè)參數(shù)是$vux.loading.isVisible()這個(gè)。這個(gè)是vux自帶的一個(gè)loading狀態(tài)顯示的參數(shù)。如果loading正在顯示的話,它會是true,否則的話就顯示false

因?yàn)槲覀儾幌M瑫r(shí)有多個(gè)請求的時(shí)候,出現(xiàn)多個(gè)loading狀態(tài),這樣的話用戶看起來會很迷茫,所以我們在調(diào)用的時(shí)候,先判斷一下這個(gè)狀態(tài)。

然后在響應(yīng)攔截器里面關(guān)掉它就好了

下面通過實(shí)例代碼介紹下vue中使用axios

1.安裝axios

npm:

$ npm install axios -S

cdn:

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

2.配置axios

在項(xiàng)目中新建api/index.js文件,用以配置axios

api/index.js

import axios from 'axios';
let http = axios.create({
 baseURL: 'http://localhost:8080/',
 withCredentials: true,
 headers: {
  'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'
 },
 transformRequest: [function (data) {
  let newData = '';
  for (let k in data) {
   if (data.hasOwnProperty(k) === true) {
    newData += encodeURIComponent(k) + '=' + encodeURIComponent(data[k]) + '&';
   }
  }
  return newData;
 }]
});
function apiAxios(method, url, params, response) {
 http({
  method: method,
  url: url,
  data: method === 'POST' || method === 'PUT' ? params : null,
  params: method === 'GET' || method === 'DELETE' ? params : null,
 }).then(function (res) {
  response(res);
 }).catch(function (err) {
  response(err);
 })
}
export default {
 get: function (url, params, response) {
  return apiAxios('GET', url, params, response)
 },
 post: function (url, params, response) {
  return apiAxios('POST', url, params, response)
 },
 put: function (url, params, response) {
  return apiAxios('PUT', url, params, response)
 },
 delete: function (url, params, response) {
  return apiAxios('DELETE', url, params, response)
 }
}

這里的配置了POST、GET、PUT、DELETE方法。并且自動將JSON格式數(shù)據(jù)轉(zhuǎn)為URL拼接的方式

同時(shí)配置了跨域,不需要的話將withCredentials設(shè)置為false即可

并且設(shè)置了默認(rèn)頭部地址為:http://localhost:8080/,這樣調(diào)用的時(shí)候只需寫訪問方法即可

3.使用axios

注:PUT請求默認(rèn)會發(fā)送兩次請求,第一次預(yù)檢請求不含參數(shù),所以后端不能對PUT請求地址做參數(shù)限制

首先在main.js中引入方法

import Api from './api/index.js';
Vue.prototype.$api = Api;

然后在需要的地方調(diào)用即可

this.$api.post('user/login.do(地址)', {
  "參數(shù)名": "參數(shù)值"
}, response => {
   if (response.status >= 200 && response.status < 300) {
    console.log(response.data);\\請求成功,response為成功信息參數(shù)
   } else {
    console.log(response.message);\\請求失敗,response為失敗信息
   }
});

總結(jié)

以上所述是小編給大家介紹的Vux+Axios攔截器增加loading的問題及實(shí)現(xiàn)方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • vue-router懶加載的3種方式匯總

    vue-router懶加載的3種方式匯總

    這篇文章主要給大家介紹了關(guān)于vue-router懶加載的3種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • vue2.0+vuex+localStorage代辦事項(xiàng)應(yīng)用實(shí)現(xiàn)詳解

    vue2.0+vuex+localStorage代辦事項(xiàng)應(yīng)用實(shí)現(xiàn)詳解

    本篇文章給大家分享了一個(gè)用vue2.0+vuex+localStorage代辦事項(xiàng)應(yīng)用實(shí)現(xiàn)的代碼過程,有興趣的朋友跟著參考學(xué)習(xí)下。
    2018-05-05
  • Vue學(xué)習(xí)之常用指令實(shí)例詳解

    Vue學(xué)習(xí)之常用指令實(shí)例詳解

    這篇文章主要介紹了Vue學(xué)習(xí)之常用指令,結(jié)合實(shí)例形式詳細(xì)分析了vue.js創(chuàng)建實(shí)例、常用指令及相關(guān)操作技巧,需要的朋友可以參考下
    2020-01-01
  • 如何在Vue3中實(shí)現(xiàn)文件上傳功能結(jié)合后端API

    如何在Vue3中實(shí)現(xiàn)文件上傳功能結(jié)合后端API

    文件上傳的功能實(shí)現(xiàn)是我們做Web應(yīng)用時(shí)候最為常見的應(yīng)用場景,下面這篇文章主要給大家介紹了關(guān)于如何在Vue3中實(shí)現(xiàn)文件上傳功能結(jié)合后端API的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-09-09
  • el-table表頭根據(jù)內(nèi)容自適應(yīng)完美解決表頭錯(cuò)位和固定列錯(cuò)位

    el-table表頭根據(jù)內(nèi)容自適應(yīng)完美解決表頭錯(cuò)位和固定列錯(cuò)位

    這篇文章主要介紹了el-table表頭根據(jù)內(nèi)容自適應(yīng)完美解決表頭錯(cuò)位和固定列錯(cuò)位,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • vue自定義翻頁組件的方法

    vue自定義翻頁組件的方法

    這篇文章主要為大家詳細(xì)介紹了vue自定義翻頁組件的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • Vue實(shí)現(xiàn)頁面添加水印功能

    Vue實(shí)現(xiàn)頁面添加水印功能

    今天小編就為大家分享一篇Vue實(shí)現(xiàn)頁面添加水印功能,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • vue如何在項(xiàng)目中調(diào)用騰訊云的滑動驗(yàn)證碼

    vue如何在項(xiàng)目中調(diào)用騰訊云的滑動驗(yàn)證碼

    這篇文章主要介紹了vue如何在項(xiàng)目中調(diào)用騰訊云的滑動驗(yàn)證碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • vue使用echarts如何實(shí)現(xiàn)雙柱狀圖和雙y軸的柱狀圖

    vue使用echarts如何實(shí)現(xiàn)雙柱狀圖和雙y軸的柱狀圖

    這篇文章主要介紹了vue使用echarts如何實(shí)現(xiàn)雙柱狀圖和雙y軸的柱狀圖問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue做移動端適配最佳解決方案(親測有效)

    vue做移動端適配最佳解決方案(親測有效)

    這篇文章主要介紹了vue做移動端適配最佳解決方案(親測有效),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09

最新評論

西城区| 胶州市| 孟州市| 北安市| 夹江县| 文山县| 陵水| 邢台县| 永泰县| 大新县| 德庆县| 大埔区| 呼图壁县| 磐安县| 亳州市| 梁河县| 黔东| 石景山区| 勃利县| 甘南县| 额济纳旗| 黄大仙区| 惠州市| 白城市| 清徐县| 广平县| 谢通门县| 双流县| 兴业县| 全南县| 岱山县| 古浪县| 东至县| 密云县| 神农架林区| 西安市| 凤城市| 彭州市| 新绛县| 于田县| 宁德市|