如何在 nuxt 上使用 vue-glide-js 事件并在最后一张幻灯片上加载更多幻灯片
how to use vue-glide-js events on nuxt and load more slides on last one
我是所有这些方面的新手,所以我需要帮助。首先,vue-glide-js 事件是如何工作的。它的文档只是列出了它们而没有示例。
其次,也是更重要的一点,我想在轮播结束时发送一个 axios 请求并加载更多项目。我无法处理事件,所以使用了活动幻灯片并观看了它,并在最后一张幻灯片上发送并更新了我的数据,但幻灯片仍然显示上一张。我该怎么办?
这是我代码的简化版
<template>
<div>
<vue-glide v-bind="carouselOptions" v-model="active">
<vue-glide-slide v-for="i in array" :key="i">
Slide {{ i }}
</vue-glide-slide>
</vue-glide>
<p>{{active}}</p>
</div>
</template>
<script>
export default {
data(){
return{
carouselOptions:{
direction: process.env.SITE_DIRECTION,
autoplay: false,
perView: this.$device.isMobileOrTablet ? 4 : 8,
peek: { before: 0, after: 50 }
},
array: [1,2,3,4,5,6,7],
active: 0
}
},
watch:{
active(){
console.log('active = ' + this.active)
if(this.active > this.array.length - 3){
this.array= [1,2,3,4,5,6,7,8,9,10,11,12,13,14]
}
}
},
mounted(){
//
}
}
</script>
如您所见,我手动向数组中添加了更多项目,但滑动仍然显示 7 个项目。我知道这与安装有关,但不知道该怎么做。
还有一件事。如果有任何更好的旋转木马支持 rtl 和断点(不同宽度的每个视图的项目),我会很高兴知道。坦克
要在幻灯片末尾使用调用方法,只需使用 @glide:run-end
:
<template>
<div>
<vue-glide v-bind="carouselOptions" v-model="active" @glide:run-end="myMethod">
<vue-glide-slide v-for="i in array" :key="i">
Slide {{ i }}
</vue-glide-slide>
</vue-glide>
</div>
</template>
要显示新幻灯片,有点棘手!据我所知,唯一的方法是刷新(重新加载)组件!所以在 vue-glide
上放一个 key
并在每张新添加的幻灯片后更改它。唯一的问题是,如果幻灯片上有图像,旧的也会被重新加载。 (这是一个建议,我还没有尝试过,但也许使用缓存系统,它可能会解决)
我是所有这些方面的新手,所以我需要帮助。首先,vue-glide-js 事件是如何工作的。它的文档只是列出了它们而没有示例。 其次,也是更重要的一点,我想在轮播结束时发送一个 axios 请求并加载更多项目。我无法处理事件,所以使用了活动幻灯片并观看了它,并在最后一张幻灯片上发送并更新了我的数据,但幻灯片仍然显示上一张。我该怎么办?
这是我代码的简化版
<template>
<div>
<vue-glide v-bind="carouselOptions" v-model="active">
<vue-glide-slide v-for="i in array" :key="i">
Slide {{ i }}
</vue-glide-slide>
</vue-glide>
<p>{{active}}</p>
</div>
</template>
<script>
export default {
data(){
return{
carouselOptions:{
direction: process.env.SITE_DIRECTION,
autoplay: false,
perView: this.$device.isMobileOrTablet ? 4 : 8,
peek: { before: 0, after: 50 }
},
array: [1,2,3,4,5,6,7],
active: 0
}
},
watch:{
active(){
console.log('active = ' + this.active)
if(this.active > this.array.length - 3){
this.array= [1,2,3,4,5,6,7,8,9,10,11,12,13,14]
}
}
},
mounted(){
//
}
}
</script>
如您所见,我手动向数组中添加了更多项目,但滑动仍然显示 7 个项目。我知道这与安装有关,但不知道该怎么做。
还有一件事。如果有任何更好的旋转木马支持 rtl 和断点(不同宽度的每个视图的项目),我会很高兴知道。坦克
要在幻灯片末尾使用调用方法,只需使用 @glide:run-end
:
<template>
<div>
<vue-glide v-bind="carouselOptions" v-model="active" @glide:run-end="myMethod">
<vue-glide-slide v-for="i in array" :key="i">
Slide {{ i }}
</vue-glide-slide>
</vue-glide>
</div>
</template>
要显示新幻灯片,有点棘手!据我所知,唯一的方法是刷新(重新加载)组件!所以在 vue-glide
上放一个 key
并在每张新添加的幻灯片后更改它。唯一的问题是,如果幻灯片上有图像,旧的也会被重新加载。 (这是一个建议,我还没有尝试过,但也许使用缓存系统,它可能会解决)