nuxt设置全局loading

创建js文件elLoading.js
import { Loading as ElLoading } from 'element-ui'
class LoadingConf {
  constructor(){
    this.loading = null
    this.loadingCounter = -1
  }
  showLoading(config) {
    if (config) {
    // config.loading 自定义 变量 通接口中传过来,用于控制那些接口需要loading
      if (config.loading && !this.loading){
        this.loading = ElLoading.service({
          fullscreen: false,
          target: ".custom_loading" // 指定绑定的dom 默认值为 document.body,详情同element loading文档
        });
      }  
    } else if (!loading) {
      this.loading = ElLoading.service({
          fullscreen: false,
          target: ".custom_loading"
      });
    }
    this.loadingCounter++;
  }
  closeLoading() {
    if (--this.loadingCounter >= 0) return;
    if (this.loading) {
      if (this.loading) this.loading.close();
      this.loading = null;
    }
  }
}
const elLoadingObj  = new LoadingConf()
export default elLoadingObj
在axios中使用
import axios from 'axios'
import elLoadingObj from '~/utils/elLoading.js'
const instance = axios.create()

instance.interceptors.request.use(config => {
    if(process.client){
      // 开启loading
      elLoadingObj.showLoading(config)
    }
    return config
  },
  err => {
    return Promise.reject(err)
  }
)
instance.interceptors.response.use(response => {
  if(process.client){
    // 关闭loading
    elLoadingObj.closeLoading()
  }
  return response
})

export default instance
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值