在我网站的其中一个页面上,有许多API调用,这些API调用可为AmCharts图表组件提供数据。
返回API调用时,我在此页面上将ValueMember
标志设置为true并显示一个加载微调器。
在API调用结束后,我将isLoading
的值更改为false,从而呈现了图表。
但是,当isLoading更改为false时,页面上会有很大的延迟,在图表出现之前,白屏显示了几秒钟甚至更长的时间。
这是代码段。
isLoading
我认为此延迟是由于AmCharts渲染时间所致,我想在所有图表完成渲染后将data() {
return {
isLoading: true
}
},
mounted() {
await API_calling();
this.$nextTick(() => {
this.isLoading = false;
}
}
的值设置为false。
所以我对stackoverflow的问题是,如何检测vue组件完成渲染的时间?
答案 0 :(得分:0)
如果同时谈论几个组件加载,那么最好的方法是使用vuex。
您可以将2个值存储到isLoading
和countLoadingComponents
。
您可以在每个组件的countLoadingComponents
方法的开头递增created()
,并在该组件内的API调用完成后递减countLoadingComponents
。
在主组件中为watcher
状态创建countLoadingComponents
。如果countLoadingComponents
等于0,则将isLoading
的状态更改为false
。