Vue.js+LayUI实现轮播图:异步请求与数据渲染
// 发送 GET 请求获取配置列表
http.request('config/list', 'get', {
page: 1,
limit: 5
}, function(res) {
// 检查返回数据列表是否为空
if (res.data.list.length > 0) {
// 初始化轮播图数据列表
let swiperList = [];
// 遍历数据列表
res.data.list.forEach(element => {
// 检查元素的 value 属性是否为空
if (element.value != null) {
// 将图片 URL 添加到轮播图数据列表
swiperList.push({
img: http.baseurl + element.value
});
}
});
// 将轮播图数据列表赋值给 Vue 实例
vue.swiperList = swiperList;
// Vue 实例更新后,渲染轮播图
vue.$nextTick(() => {
carousel.render({
elem: '#test1', // 轮播图容器的选择器
width: '100%', // 轮播图宽度
height: '500px', // 轮播图高度
arrow: 'hover', // 箭头显示时机:悬停时显示
anim: 'fade', // 动画效果:淡入淡出
autoplay: 'true', // 自动播放
interval: '3000', // 自动播放间隔时间
indicator: 'inside' // 指示器位置:内部
});
})
}
})
这段代码实现了以下功能:
- 发送异步 HTTP GET 请求:
- 请求地址:'config/list'
- 请求参数:
{ page: 1, limit: 5 } - 获取分页配置列表数据
- 处理响应数据:
- 检查返回数据列表
res.data.list是否为空 - 遍历数据列表,提取图片 URL,构建轮播图数据列表
swiperList
- 检查返回数据列表
- 更新 Vue 实例数据:
- 将
swiperList赋值给vue.swiperList,触发视图更新
- 将
- 渲染轮播图:
- 使用
vue.$nextTick确保 Vue 实例更新完成后执行 - 使用 LayUI 的
carousel.render方法渲染轮播图 - 配置轮播图参数,例如:
elem: 轮播图容器的选择器width: 轮播图宽度height: 轮播图高度arrow: 箭头显示时机anim: 动画效果autoplay: 自动播放interval: 自动播放间隔时间indicator: 指示器位置
- 使用
原文地址: https://www.cveoy.top/t/topic/gQAa 著作权归作者所有。请勿转载和采集!