VUE项目axios请求时,显示loading

1.在src目录下的main.js文件中,引入:

import axios from 'axios';
import Mint from 'mint-ui';
Vue.use(Mint);

2.axios发起请求时,显示loading:

// axios发起请求时,显示loading
axios.interceptors.request.use((config) => {
  Mint.Indicator.open({ // 显示loading
    text: '加载中...',
    spinnerType: 'fading-circle'
  })
  return config
}, (err) => {
  return Promise.reject(err)
})

3.axios请求完成后,隐藏loading:

// axios请求完成后,隐藏loading
axios.interceptors.response.use((response) => {
  Mint.Indicator.close(); // 关闭loading
  return response
}, (err) => {
  return Promise.reject(err)
})

总结,这样子写在每一个请求axios时,是可以显示loading的。但是会存在一个问题,就是当一个页面有去请求多个接口时,就会出现loading-显示-隐藏-显示-隐藏的重复事件,目前不知道咋解决比较好。

你可能感兴趣的:(VUE项目axios请求时,显示loading)