LoadMore 加载更多

用于列表底部上拉加载更多时的状态显示。

代码示例

				
<template>
	<zk-theme type="page" :padding="30" >
		<!-- 加载更多状态 -->
		<zk-theme type="card" :padding="30" :radius="16" margin="0 0 30rpx 0">
			<zk-text type="secondary" :size="28" weight="bold" margin="0 0 20rpx 0" text="加载更多状态" align="center" />
			<zk-load-more status="loadmore" @loadmore="onLoadMore" />
		</zk-theme>

		<!-- 加载中状态 -->
		<zk-theme type="card" :padding="30" :radius="16" margin="0 0 30rpx 0">
			<zk-text type="secondary" :size="28" weight="bold" margin="0 0 20rpx 0" text="加载中状态" align="center" />
			<zk-load-more status="loading" />
		</zk-theme>

		<!-- 没有更多状态 -->
		<zk-theme type="card" :padding="30" :radius="16" margin="0 0 30rpx 0">
			<zk-text type="secondary" :size="28" weight="bold" margin="0 0 20rpx 0" text="没有更多状态" align="center" />
			<zk-load-more status="nomore" />
		</zk-theme>

		<!-- 实线样式 -->
		<zk-theme type="card" :padding="30" :radius="16" margin="0 0 30rpx 0">
			<zk-text type="secondary" :size="28" weight="bold" margin="0 0 20rpx 0" text="实线样式" align="center" />
			<zk-load-more status="nomore" :line="true" :dashed="false" line-color="#e5e5e5" />
		</zk-theme>

		<!-- 虚线样式 -->
		<zk-theme type="card" :padding="30" :radius="16" margin="0 0 30rpx 0">
			<zk-text type="secondary" :size="28" weight="bold" margin="0 0 20rpx 0" text="虚线样式" align="center" />
			<zk-load-more status="nomore" :line="true" :dashed="true" line-color="#e5e5e5" />
		</zk-theme>

		<!-- 自定义样式 -->
		<zk-theme type="card" :padding="30" :radius="16" margin="0 0 30rpx 0">
			<zk-text type="secondary" :size="28" weight="bold" margin="0 0 20rpx 0" text="自定义样式" align="center" />
			<zk-load-more status="loading" :line="true" :icon-size="40" loading-icon="spinner" icon-color="#2979ff"
				color="#2979ff" />
		</zk-theme>

		<!-- 点状 -->
		<zk-theme type="card" :padding="30" :radius="16" margin="0 0 30rpx 0">
			<zk-text type="secondary" :size="28" weight="bold" margin="0 0 20rpx 0" text="点状样式" align="center" />
			<zk-load-more status="nomore" :is-dot="true" />
		</zk-theme>

		<!-- 列表演示 -->
		<zk-theme type="card" :padding="30" :radius="16" margin="0 0 30rpx 0">
			<zk-text type="secondary" :size="28" weight="bold" margin="0 0 20rpx 0" text="列表加载演示" align="center" />
			<view class="list-container">
				<view class="list-item" v-for="(item, index) in list" :key="index">
					<zk-text type="primary" :size="28" :text="`列表项 ${item}`" />
				</view>
			</view>
			<zk-load-more :status="listLoadStatus" @loadmore="loadMoreList" />
		</zk-theme>
	</zk-theme>
</template>

<script>
export default {
	data() {
		return {
			list: [],
			page: 1,
			listLoadStatus: 'loadmore'
		}
	},

	created() {
		this.loadMoreList()
	},

	methods: {
		onLoadMore() {
			uni.showToast({
				title: '触发加载更多',
				icon: 'none'
			})
		},

		loadMoreList() {
			if (this.listLoadStatus === 'loading') return

			this.listLoadStatus = 'loading'

			setTimeout(() => {
				const newItems = Array.from({ length: 10 }, (_, i) =>
					this.list.length + i + 1
				)

				this.list.push(...newItems)
				this.page++

				if (this.page > 3) {
					this.listLoadStatus = 'nomore'
				} else {
					this.listLoadStatus = 'loadmore'
				}
			}, 1500)
		}
	}
}
</script>

<style lang="scss">
.list-container {
	/* #ifndef APP-NVUE */
	min-height: 200rpx;
	/* #endif */
}

.list-item {
	padding: 20rpx 0;
	border-bottom-width: 1rpx;
	border-bottom-style: solid;
	border-bottom-color: #eee;

	&:last-child {
		border-bottom-width: 0;
	}
}

/* #ifdef APP-NVUE */
.list-container {
	width: 662rpx;
}

.list-item {
	width: 662rpx;
}
/* #endif */

/* #ifndef APP-NVUE */
::-webkit-scrollbar {
	display: none;
	width: 0 !important;
	height: 0 !important;
	-webkit-appearance: none;
	background: transparent;
}
/* #endif */
</style>
			

API

Props 属性

参数 说明 类型 默认值
status 组件状态,可选值:loadmore / loading / nomore string loadmore
bgColor 背景颜色 string transparent
icon 是否显示加载图标 boolean true
fontSize 文字大小,单位rpx string / number 28
iconSize 加载图标大小,单位rpx string / number 34
loadingIcon 加载图标类型,可选值:default / spinner / circular string circular
loadmoreText 加载更多文字 string 加载更多
loadingText 加载中文字 string 正在加载...
nomoreText 没有更多文字 string 没有更多了
isDot 没有更多时是否显示圆点 boolean false
marginTop 上边距,单位rpx string / number 10
marginBottom 下边距,单位rpx string / number 10
height 组件高度,单位rpx string / number auto
line 是否显示左右分割线 boolean false
dashed 分割线是否为虚线 boolean false
color 文字颜色 string ''
iconColor 图标颜色 string ''
lineColor 分割线颜色 string ''

Events 事件

事件名 说明 回调参数
loadmore status为loadmore时,点击组件触发 -