请求—全局loading—避免操作快导致的误操作------使用请求、响应拦截器
合并loading,一个请求触发一次loading,避免loading一直闪烁抖动的问题------使用lodash中的debounce
核心:showFullScreenLoading , tryHideFullScreenLoading
/ src / utils / request.js
import axios from 'axios'
import {
MessageBox, Message } from 'element-ui'
import store from '@/store'
import {
getToken } from '@/utils/auth'
import {
showFullScreenLoading,
tryHideFullScreenLoading,
} from './loading'
// create an axios instance
const service = axios.create({
timeout: 15000, // 请求超时时间
useMock: false
})
// request拦截器
service.interceptors.request.use(
config => {
showFullScreenLoading()
if (store.getters.useMock) {
config.baseURL =
'......'
}
// Do something before request is sent
if (store.getters.token) {
config.headers.Authorization = getToken() // 让每个请求携带token--['X-Token']为自定义key 请根据实际情况自行修改
} else {
config