检测vue组件完成渲染

时间:2020-02-02 17:34:50

标签: api vue.js components rendering loading

在我网站的其中一个页面上,有许多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组件完成渲染的时间?

1 个答案:

答案 0 :(得分:0)

如果同时谈论几个组件加载,那么最好的方法是使用vuex。

您可以将2个值存储到isLoadingcountLoadingComponents

您可以在每个组件的countLoadingComponents方法的开头递增created(),并在该组件内的API调用完成后递减countLoadingComponents

在主组件中为watcher状态创建countLoadingComponents。如果countLoadingComponents等于0,则将isLoading的状态更改为false