实际使用过程中Vue的nextTick与setTimeout为什么还是有些差异?

最近开发过程中使用到了swiper组件来显示轮播需求,轮播的内容由接口异步加载。在处理这块逻辑时发现了一个问题:
当我在nextTick内部处理swiper初始化时,异步加载的数据并未显示,但是换成setTimeout时swiper可以成功显示,印象中不知道在哪里看到有一句话讲

引用
当你想在vue中使用setTimeout时,你应该使用nextTick

所以在vue中上述这种情况导致的原因是什么呢,有没有比setTimeout更优雅的解决方式?

阅读 1.5k
1 个回答
我这样用是可以展示的呀
//拿到后端返回的数据
this.newBannerList = respData.body.bannerList
this.$nextTick(() => {
  // new Swiper
  this.initSwiper()
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题