场景
在后台系统中,每次接口提交的时候都需要添加一个loading来告知用户我们正在进行系统操作,但是这样需要我们反复复制代码,并且需要再三确保loading关闭的时机,低劳动且容易忘记
解决
在全局的axios添加服务loading,根据api配置的参数判断是否展示loading,根据接口状态来添加和关闭loading
第一步:axios添加loading服务
// axios.jsimport { Loading } from 'element-ui';// 全局loadinglet loadingInstance;axios.interceptors.request.use((config) => {// ...一些其他操作// 判断api中是否有loading参数,有就展示全局loadingif (config.loadingOptions) {loadingInstance = Loading.service(config.loadingOptions);}}, (error) => {// 请求错误关闭loadingloadingInstance && loadingInstance.close();// 一些其他操作});// 返回状态判断(添加响应拦截器)axios.interceptors.response.use(response => {// 响应成功关闭loadingloadingInstance && loadingInstance.close();}, error => {// 响应失败关闭loadingloadingInstance && loadingInstance.close();});
第二步:在想要加loading的接口中加入标识
const getCityConfig = (params) => axios.get(getCityConfigApi, {params,loadingOptions: {fullscreen: true,text: '请稍等...'}});
