vue含有多个时间周期,近期在通过axios获取网络数据时出现如下问题:我的获取数据方法在created中调用并将数据解析和赋值给this,在mounted中调用echarts进行初始化,然而初始化的echarts的时候出现无法获取已经赋值的数据问题,但在页面加载完毕后,数据可以在页面显示,只是由于echarts初始化失败,故除了echarts以外的界面正常显示。
在无限尝试后发现,这是由于异步请求的问题,created中发起网络请求后,vue会继续执行beforemounted等钩子函数,而如果网络请求时间较长,就会导致mounted中获取不到数据的问题。
解决方法:在网络请求的then()后面对echarts进行初始化,这样就保证了数据的一致性。