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)
}
}