nextTick多层嵌套的问题

来源:22-1 课程总结

学东西要快

2018-01-20

nextTick官方解释是在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。

既然是个异步方法,那我想能否通过nextTick的多层嵌套,比如

this.$nextTick(()=>{
    this.$nextTick(()=>{
      this.$nextTick(()=>{
        // render dom after some async operator
      })
    })
})

来保证页面在获得异步数据之后得到正常的渲染呢。

会有这个问题主要是老师在做商家实景的横向滚动时,老师是watch了seller来保证dom渲染完毕后再应用better-scroll的。如果多层嵌套有用的话应该也能满足需求吧。

虽然我试过多层嵌套没有预期的效果,还是只能跟老师一样去watch,但是不明白为什么这样不可以。请老师指点一下迷津

写回答

1回答

ustbhuangyi

2018-01-20

当然不可以,nextTick 说白了也就是下一个 tick,不到 20ms 的时间,你写再多也不能保证一定有数据。如果是从服务端读取数据,那么一定需要等服务端返回数据的时机才是最靠谱的。

0
1
学东西要快
谢谢老师
2018-01-20
共1条回复

Vue.js2.5+cube-ui重构饿了么App(经典再升级)

掌握Vue1.0到2.0再到2.5最全版本应用与迭代,打造极致流畅的WebApp

9868 学习 · 4162 问题

查看课程