Вы можете установить глобальный параметр загрузки и установить для него значение false по умолчанию, а затем установить значение true в beforeMount и false в смонтированном.
//store/index.js
...
state: {
loading: false,
},
//yourComponent.vue
<template>
<div v-if="this.$store.state.loading">
//a spinner or progress bar
</div>
<div v-else>
//your component code
</div>
</template>
<script>
export default {
beforeMount() {
this.$store.state.loading = true
}
mounted() {
this.$store.state.loading = false
}
}
</script>
Они не вызываются, если вы используете рендеринг на стороне сервера, поэтому вы должны выполнить загрузочный вызов в методе, который вызывается при инициализации.