关于VUE的请求数据和获取DOM的顺序,有个疑惑想请问一下前辈

bug之所措
  • 403

前辈好,最近在初学vue,遇到一个问题思考不出解决方案,所以想请教一下。

html结构就这样,我想获取ul下面的第一个li的高度,li是用v-for循环出来的

图片描述

但是我在mounted钩子函数里,写了这句话

图片描述

不行,获取不了,但是我如果加个延时器延时个2秒再执行就可以了,所以我猜应该就是渲染的顺序问题

我想请问前辈,前辈,到底应该怎么写才可以在li渲染之后,再获取到它的高度呢???还有一点,也是我最近在写练习的时候遇到的,就是请问如何在其他组件里面获取到其他组件的高度????

希望能得到前辈指教!打扰了!

补充一下,那个循环的数据我是通过axios访问我在static创建的一个假的json数据
图片描述

按下面前辈说的,加个$nextTick
图片描述

还是不行
图片描述

回复
阅读 2.3k
4 个回答
leonleung
  • 2.9k
✓ 已被采纳

要写在axios请求的then回调里

this.$nextTick(()=>{

})
试试

你获取的时候DOM还没更新,需要更新完了再获取高度。vue里提供了全局方法 nextTick 去实现。

this.$nextTick(() => {
    // 你的代码
})
宣传栏