Vue+elementUi loading效果


elementui的loading效果

有指令和服務兩種,指令是通過開關控制,服務是通過loading實例對象去控制的,但是這里需要注意的是,如果有多個請求發出,loading效果可能展示不對,比如請求兩個接口,一個接口請求回來之后,立馬關閉loading ,導致第二個請求還沒有回來,已經關閉loading了,這樣的體驗是不好的。

這里解決的思路是,判斷有多少個請求,等所有的請求回來之后再關閉

import {Loading} from 'element-ui'

let loading;//loading的實例對象

let loadingCount = 0;

function start(){

  loading = Loading.service({

    lock:true,

    text:'加載中',

    background:'rgba(0,0,0,0.1)'

  })
};

function end(){

  laoding.close();
}

 function showLoaing(){

  if( loadingCount==0){

    start();

  };

  loadingCount++

};

function hideLoading(){

  loadingCount--;

  if(loadingCount==0){

           end()

  }
}

 axios.interceptors.request.use(req=>{

      showLoaing();

});

axios.interceptors.response.use(res=>{

  hideLoading()

},err=>{

  try{

    hideLoading()})

  }catch(err){

    console.log(err)

  }

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM