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

vue工程全局設(shè)置ajax的等待動效的方法

 更新時間:2019年02月22日 09:21:08   作者:田臭臉  
這篇文章主要介紹了vue工程全局設(shè)置ajax的等待動效的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

最近在做vue的項目,使用了element-ui作為ui組件庫,采用vuex進(jìn)行狀態(tài)管理,與后臺的請求交互采用axios庫實現(xiàn),原本做的頁面,ajax請求個數(shù)也只有三個,將等待動畫的顯示和隱藏通過mutation去控制,但是項目越來越大,請求也越來越多,能否將這個等待動畫與ajax的請求相關(guān)聯(lián)呢?

實現(xiàn)等待動效

在element-ui中,提供了兩個方法進(jìn)行調(diào)用loading組件,一個是在需要遮罩的div容器中添加v-loading指令,另一種就是以服務(wù)形式調(diào)用:Loading.service(options),在本項目中,在加載數(shù)據(jù)時,進(jìn)行全局遮罩,所以設(shè)置let loadingInstance = Loading.service({fullscreen:true})。關(guān)閉服務(wù)形式的調(diào)用:loadingInstance.close();

axios的攔截器

個人對攔截器的作用的理解是,在請求發(fā)送前和響應(yīng)處理前,對該ajax請求進(jìn)行一定的設(shè)置或者處理,方便對工程內(nèi)的ajax請求進(jìn)行統(tǒng)一處理,減少重復(fù)代碼。

 //請求攔截器
 axios.interceptors.request.use((config) => {
  // 在發(fā)送請求之前做些什么
  return config;
 }, (error) => {
  // 對請求錯誤做些什么
  return Promise.reject(error);
 });
 // 添加響應(yīng)攔截器
 axios.interceptors.response.use((response) => {
  // 對響應(yīng)數(shù)據(jù)做點什么
  return response;
 }, (error) => {
  // 對響應(yīng)錯誤做點什么
  return Promise.reject(error);
 });

有了攔截器,我們可以想到,在ajax請求發(fā)送前開啟loading動畫,在接收響應(yīng)后關(guān)閉loading動畫。但是要對每個ajax都開關(guān)一下loading動畫嗎?其實不必。只需要實現(xiàn)一個ajax的計數(shù)器,在個數(shù)大于0時,開啟動畫,在個數(shù)為0的時候,關(guān)閉動畫。

計數(shù)器實現(xiàn)

let loadingInstance;
let loadCounter = {
  count:0,
  show:() => {
    if(count < 0){
     this.count ++;
     loadingInstance = Loading.service({fullscreen:true});
    }
  },
  hide:()=>{
    if(count > 0){
      this.count --;
      this.$nextTick(()=>{//以服務(wù)的方式調(diào)用的 Loading 需要異步關(guān)閉
        loadingInstance.close();
      });
    }
  }
}

使用方法

 //請求攔截器
 axios.interceptors.request.use((config) => {
  loadCounter.show();
  return config;
 }, (error) => {
  return Promise.reject(error);
 });
 // 添加響應(yīng)攔截器
 axios.interceptors.response.use((response) => {
  loadCounter.hide();
  return response;
 }, (error) => {
  return Promise.reject(error);
 });

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

相關(guān)文章

  • 一文教會你vue中使用async和await

    一文教會你vue中使用async和await

    async和await作為異步函數(shù),語法很簡單,就是在函數(shù)前面加上async 關(guān)鍵字,來表示它是異步的,下面這篇文章主要給大家介紹了如何通過一文教會你vue中使用async和await的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • vue全局組件和局部組件的寫法介紹

    vue全局組件和局部組件的寫法介紹

    這篇文章主要介紹了vue全局組件和局部組件的寫法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • vue實現(xiàn)動態(tài)監(jiān)測元素高度

    vue實現(xiàn)動態(tài)監(jiān)測元素高度

    這篇文章主要介紹了vue實現(xiàn)動態(tài)監(jiān)測元素高度方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue搜索頁開發(fā)實例代碼詳解(熱門搜索,歷史搜索,淘寶接口演示)

    vue搜索頁開發(fā)實例代碼詳解(熱門搜索,歷史搜索,淘寶接口演示)

    這篇文章主要介紹了vue搜索頁開發(fā)實例(熱門搜索,歷史搜索,淘寶接口演示),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • antd form表單中如何嵌套自定義組件

    antd form表單中如何嵌套自定義組件

    這篇文章主要介紹了antd form表單中如何嵌套自定義組件問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 詳解Vue computed計算屬性是什么

    詳解Vue computed計算屬性是什么

    在vue中,有時候你需要對data中的數(shù)據(jù)進(jìn)行處理,或者對抓取的數(shù)據(jù)進(jìn)行處理之后再掛載呈現(xiàn)到標(biāo)簽中,這時候你就需要計算屬性了,當(dāng)然看到這里你可能還是不了解那下面我舉幾個實例并附代碼解釋
    2023-03-03
  • vue使用vue-video-player插件播放視頻的步驟講解

    vue使用vue-video-player插件播放視頻的步驟講解

    在最近的項目中有一個視頻播放的功能,在之前的項目中沒有接觸過類似的功能,第一次接觸,把具體操作步驟一下,這篇文章主要給大家介紹了關(guān)于vue使用vue-video-player插件播放視頻的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • vue之將echart封裝為組件

    vue之將echart封裝為組件

    這篇文章主要介紹了vue之將echart封裝為組件,本文將會以雷達(dá)圖為案例,一步步講解在vue項目中如何使用echart,如何將其封裝為能重復(fù)調(diào)用的組件
    2018-06-06
  • Vue中安裝element-ui失敗問題原因及解決

    Vue中安裝element-ui失敗問題原因及解決

    Vue中安裝element-ui失敗問題原因及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 部署vue+Springboot前后端分離項目的步驟實現(xiàn)

    部署vue+Springboot前后端分離項目的步驟實現(xiàn)

    這篇文章主要介紹了部署vue+Springboot前后端分離項目的步驟實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05

最新評論

梁河县| 洪泽县| 乌什县| 镇赉县| 蛟河市| 宜君县| 南乐县| 卢湾区| 平山县| 黑河市| 高要市| 额敏县| 嵊泗县| 新丰县| 南昌市| 绩溪县| 陇川县| 仁布县| 乡城县| 青川县| 柳林县| 鹤岗市| 扎鲁特旗| 杭锦后旗| 江津市| 天长市| 古浪县| 汨罗市| 商都县| 揭阳市| 盐城市| 德庆县| 务川| 交口县| 宁化县| 涞水县| 西和县| 临邑县| 灵丘县| 新巴尔虎右旗| 手游|