轮播图中使用 $nextTick( )
nextTick()简单理解
问题:轮播图数据量大,dom还没有渲染完成,就 v-for循环了轮播图。会报错,所以这里使用
定义:在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。
理解:nextTick(),是将回调函数延迟在下一次dom更新数据后调用,简单的理解是:当数据更新了,在dom中渲染后,自动执行该函数,
data(){
return{
bannerList:[]
}
},
watch:{
bannerList:{
immediate:true,
handler(){
//等待最近的一次渲染完成, 再执行回调中的代码
this.$nextTick(()=>{
new Swiper (this.$refs.mySwiper, {
loop: true, // 循环模式选项
// 如果需要分页器
pagination: {
el: '.swiper-pagination',
},
// 如果需要前进后退按钮
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
// 如果需要滚动条
scrollbar: {
el: '.swiper-scrollbar',
},
})
})
}
}
},