是的,可以在Vue项目的请求拦截器中写全局loading。在请求开始时展示loading,请求结束时隐藏loading即可。以下是一个示例:

import axios from 'axios'
import { Loading } from 'element-ui'

// 创建一个loading实例
const loading = Loading.service()

// 请求拦截器
axios.interceptors.request.use(
  config => {
    // 在发送请求之前展示loading
    loading.show()
    return config
  },
  error => {
    return Promise.reject(error)
  }
)

// 响应拦截器
axios.interceptors.response.use(
  response => {
    // 请求成功时隐藏loading
    loading.hide()
    return response
  },
  error => {
    // 请求失败时隐藏loading
    loading.hide()
    return Promise.reject(error)
  }
)

在上面的代码中,我们使用了element-ui的Loading组件来展示loading效果,你也可以使用其他UI库或自定义loading组件来实现。在请求拦截器中,在发送请求之前展示loading,在响应拦截器中,无论请求成功还是失败,都隐藏loading。这样就可以实现全局loading的效果。

vue项目请求拦截器中可以写全局loading吗

原文地址: https://www.cveoy.top/t/topic/i5kC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录