Вы должны добавить задержку сразу после вызова API, если у вас есть мутация с именем updateIsLoading
для обновления состояния isLoading
.
fetch(url)
.then(res => res.json())
.then(res => {
// do something with your data
setTimeout(() => this.$store.commit('updateIsLoading'), 1000)
})
.catch(...)
Если вам нужно установить задержку один раз и для все, одно решение - создать действие, а затем отправить действие после получения ответа от вызова API.
actions: {
updateIsLoading({ commit }) {
setTimeout(() => commit('updateIsLoading'), 1000)
}
}
Если вы действительно хотите сделать это в своем компоненте, вы можете настроить наблюдателя и обновить локальную isLoading
переменную после некоторой задержки:
export default {
data() {
return {
count: 0,
max: 100,
isLoading: false
}
},
computed: {
loading () {
return this.$store.state.isLoading;
}
},
watch: {
loading(newVal, oldVal) {
setTimeout(() => this.isLoading = newVal, 1000)
}
}
}