按照官方文档
this.$nextTick
可以在dom渲染完成之后执行操作,于是出现了以下问题:
如图
- 上图为列表部分,下图为vue部分
- 采用
watch
监听数据变化,然后用this.$nextTick
等待dom渲染完成再执行方法
预期得到这样的结果
实际上得到的结果
如果说在控制台执行方法,可以将上图变为预期结果
- 初看之下,似乎
this.$nextTick
并没有生效,但是实际上的确是dom渲染完成之后才执行的方法; - 猜测原因是图片源是位于服务器端,而不在vue端,dom渲染完成,但是图片资源并没有加载完成,于是出现了这样的情况;
- 解决方案是设置定时器,如图
采用这种方式延时等待图片资源加载完成,但是如果请求端网络情况较差,仍然会出现加载不全的情况,因此此方案也有一些不稳定性。