vue中异步请求渲染问题(swiper不轮播)(在开发过程中遇到过什么问题)

Posted wuqilang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue中异步请求渲染问题(swiper不轮播)(在开发过程中遇到过什么问题)相关的知识,希望对你有一定的参考价值。

问题描述:

  用vue封装一个swiper组件的时候,发现轮播图不能轮播了。

原因:

  异步请求的时间远大于生命周期执行的时间,mounted初始化DOM时数据未返回,渲染数据是空数组,导致轮播图的容器层宽度为0,渲染轮播图不能滚动。

解决思路:

  数据返回之后再做初始化操作。

解决方法:

  一、容器没有宽度,就想着给容器设置一个宽度,但是一旦设置死数据了后期维护起来很麻烦。

  二、设置一个定时器,延长等待的时间,但是无法确定网络请求的时间,这样操作严么会等待时间过长,影响用户体验,要么是还没有请求完就去获取数据,这样依然是不行。

  三、vue提供了一个全局API,Vue.$nextTick(),它的作用是获取数据更新后最新的DOM结构。$nextTick()是同步的,但是里面的回调是异步的。底层是MutationObserver或setTimeout(fn,200)。

以上是关于vue中异步请求渲染问题(swiper不轮播)(在开发过程中遇到过什么问题)的主要内容,如果未能解决你的问题,请参考以下文章

Swiper的jquery动态渲染不能滑动

vue_cli轮播图--swiper插件

vue封装组件swiper轮播组件

偶遇vue-awesome-swiper的坑

解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题

图片轮播-swiper动态加载