使用 $nextTick()
解决加载中状态频繁改变导致加载图标无法出现问题, 基本原理就是等待DOM更新后再改变加载中状态。
async loadData(initLoad = false) {
try {
//...
await this.$nextTick();
this.$store.commit('base/CHANGE_LOADING', true);
const params = this.getSearchParams();
const { data, total, pageSize, resData } = await this.$Api.request(params);
//...
} catch (error) {
console.warn(error);
} finally {
this.$store.commit('base/CHANGE_LOADING', false);
}
},
<div v-loading="$store.state.base.loading"></div>