Вы могли бы использовать логическое значение isLoading для условного рендеринга индикатора выполнения, когда оно истинно, и для остальных компонентов, если оно ложно.
Я вижу, что вы упомянули топор ios. Маловероятно, но если вы не делаете больше вызовов API после начальной загрузки страницы, вы можете создать перехватчики в вашем экземпляре ax ios, которые устанавливают часть состояния vuex как true, когда запрос начинается, и false, когда он заканчивается. Затем вы можете просто условно отобразить ваш индикатор выполнения в приложении. vue, если он равен true, и ваш вид маршрутизатора, если он равен false.
import axios from 'axios'
import store from '@/store'
const api = axios.create({
baseURL: 'URL',
})
api.interceptors.request.use(config => {
store.commit('changeLoadingStatus', true)
return config
}, error => {
// Handle errors
})
api.interceptors.response.use(response => {
store.commit('changeLoadingStatus', false)
return response
}, error => {
// Handle errors
})
export default api