vue从后端接受数据后,由于延迟无法在页面展示Echarts图形怎么办?
经过我多次摸索,终于悟了!非常简单,只需要添加一个this.$nextTick()
下面是我的一个例子
解释一下我代码的意思:通过全局事件总线,当'get-button-value'自定义事件被触发时,会执行对应的回调函数。在回调函数内部,会将传递过来的数据(data)中的buttonValue赋值给当前组件实例(this)的buttonValue属性。接着,在设置了buttonValue值之后,通过this.nextTick()方法来确保在Vue.js更新DOM后再执行后续操作。在这种情况下,会先调用this.getData()方法获取数据,然后再次使用this.nextTick()来确保图表已经渲染完毕(this.$refs.chart存在),最后调用initChart()方法初始化图表。
总的来说,nextTick的运用时机是:当改变数据时,想要基于更新后的新DOM进行某些操作时,在nextTick的回调函数中执行。