# LoadMore 加载更多
此组件一般用于标识页面底部加载数据时的状态,共有三种状态:
- 加载前,显示"加载更多",加入点击可选,是因为数据不够一页时,无法触发页面的
onReachBottom
生命周期 - 加载中,显示"正在加载...",2种动画可选
- 加载后,如果还有数据,回到"加载前"状态,否则加载结束,显示"没有更多了"
# 平台差异说明
App(vue) | App(nvue) | H5 | 小程序 |
---|---|---|---|
√ | √ | √ | √ |
# 基本使用
- 通过
status
设置组件的状态,加载前值为loadmore
,加载中为loading
,没有数据为nomore
注意:以下示例仅为模拟效果,实际中请根据自己的逻辑,修改代码的实现
<template>
<view class="wrap">
<view class="item up-border-bottom" v-for="(item, index) in list" :key="index">
{{'第' + item + '条数据'}}
</view>
<up-loadmore :status="status" />
</view>
</template>
<script setup>
import { ref } from 'vue';
// 创建响应式数据
const status = ref('loadmore');
const list = ref(15);
const page = ref(0);
// 定义方法
function onReachBottom() {
if (page.value >= 3) return;
status.value = 'loading';
page.value++;
setTimeout(() => {
list.value += 10;
if (page.value >= 3) status.value = 'nomore';
else status.value = 'loading';
}, 2000);
}
</script>
<style lang="scss" scoped>
.wrap {
padding: 24rpx;
}
.item {
padding: 24rpx 0;
color: $up-content-color;
font-size: 28rpx;
}
</style>
# 控制组件的提示以及动画效果
- 如果不需要图标,可以设置
icon
为false
- 可以设置
is-dot
为true
,在没有数据时,内容显示为一个"●"替代默认的"没有更多了" - 可以通过配置
loading-text
配置提示的文字,该参数为一个对象值,可以修改默认的文字提示,见如下:
<template>
<up-loadmore
:status="status"
:loading-text="loadingText"
:loadmore-text="loadmoreText"
:nomore-text="nomoreText"
/>
</template>
<script setup>
import { ref } from 'vue';
// 创建响应式数据
const status = ref('loadmore');
const loadingText = ref('努力加载中');
const loadmoreText = ref('轻轻上拉');
const nomoreText = ref('实在没有了');
</script>
# 线条自定义颜色和设置为虚线 2.0.32
- 可以通过配置
dashed
和lineColor
实现,见如下:
<template>
<up-loadmore
loadmoreText="看,我和别人不一样"
color="#1CD29B"
lineColor="#1CD29B"
dashed
line
/>
</template>
<script setup>
import { ref } from 'vue';
// 创建响应式数据
const status = ref('loadmore');
const loadingText = ref('努力加载中');
const loadmoreText = ref('轻轻上拉');
const nomoreText = ref('实在没有了');
</script>