Skip to content
官方QQ交流群
pc端ui:468705115   点此加入
移动端ui:468217742   点此加入
技术交流1:87208295   点此加入
技术交流2:787747122   点此加入
官网
云控制台
开放平台
关注微信公众号
代码仓库: 码云

LoadMore 加载更多

此组件一般用于标识页面底部加载数据时的状态,共有三种状态:

  • 加载前,显示"加载更多",加入点击可选,是因为数据不够一页时,无法触发页面的onReachBottom生命周期
  • 加载中,显示"正在加载...",2种动画可选
  • 加载后,如果还有数据,回到"加载前"状态,否则加载结束,显示"没有更多了"

平台差异说明

App(vue)App(nvue)H5小程序

基本使用

  • 通过status设置组件的状态,加载前值为loadmore,加载中为loading,没有数据为nomore

注意:以下示例仅为模拟效果,实际中请根据自己的逻辑,修改代码的实现

html
<template>
	<view class="wrap">
		<view class="item u-border-bottom" v-for="(item, index) in list" :key="index">
			{{'第' + item + '条数据'}}
		</view>
		<up-loadmore :status="status" />
	</view>
</template>

<script>
	export default {
		data() {
			return {
				status: 'loadmore',
				list: 15,
				page: 0
			}
		},
		onReachBottom() {
			if(this.page >= 3) return ;
			this.status = 'loading';
			this.page = ++ this.page;
			setTimeout(() => {
				this.list += 10;
				if(this.page >= 3) this.status = 'nomore';
				else this.status = 'loading';
			}, 2000)
		}
	}
</script>

<style scoped>
	.wrap {
		padding: 24rpx;
	}
	
	.item {
		padding: 24rpx 0;
		color: var(--u-content-color);
		font-size: 28rpx;
	}
</style>

控制组件的提示以及动画效果

  • 如果不需要图标,可以设置iconfalse
  • 可以设置is-dottrue,在没有数据时,内容显示为一个"●"替代默认的"没有更多了"
  • 可以通过配置loading-text配置提示的文字,该参数为一个对象值,可以修改默认的文字提示,见如下:
html
<template>
	<up-loadmore 
        :status="status" 
        :loading-text="loadingText" 
        :loadmore-text="loadmoreText" 
        :nomore-text="nomoreText" 
    />
</template>

<script>
	export default {
		data() {
			return {
				status: 'loadmore',
                loadingText: '努力加载中',
                loadmoreText: '轻轻上拉',
                nomoreText: '实在没有了'
			}
		}
	}
</script>

线条自定义颜色和设置为虚线 2.0.32

  • 可以通过配置dashedlineColor实现,见如下:
html
<template>
	<up-loadmore 
				loadmoreText="看,我和别人不一样"
				color="#1CD29B"
				lineColor="#1CD29B"
				dashed
				line
    />
</template>

<script>
	export default {
		data() {
			return {
				status: 'loadmore',
				loadingText: '努力加载中',
				loadmoreText: '轻轻上拉',
				nomoreText: '实在没有了'
			}
		}
	}
</script>

手动触发加载更多

有时候可能会因为网络,或者数据不满一页的原因,导致无法上拉触发onReachBottom生命周期,这时候(需statusloadmore状态),用户点击组件,就会触发loadmore 事件,可以在回调中,进行状态的控制和数据的加载,同时也可以修改loadTextloadmore为"上拉或点击加载更多"进行更加人性化的提示。

此页面源代码地址

页面源码地址


 github  gitee

API

Props

参数说明类型默认值可选值
status组件状态Stringloadmoreloading / nomore
bgColor组件背景颜色,在页面是非白色时会用到(默认为transparent)Stringtransparent-
icon加载中时是否显示图标Booleantruefalse
fontSize字体大小,单位rpxString | Number14-
iconSize图标大小,单位pxString | Number17-
color字体颜色String#606266-
loadingIcon加载中状态的图标Stringcirclespinner / semicircle
loadmoreText加载前的提示语String加载更多-
loadingText加载中提示语String正在加载...-
nomoreText没有更多的提示语String没有更多了-
isDotstatusnomore时,内容显示为一个"●"Booleanfalsetrue
iconColor加载中的动画图标的颜色String#b7b7b7-
lineColor 2.0.32线条颜色String#E6E8EB-
dashed 2.0.32是否虚线,false-实线,true-虚线Booleanfalsetrue
marginTop与前一个元素的距离,单位rpxString | Number10-
marginBottom与后一个元素的距离,单位rpxString | Number10-
height高度String | Numberauto-
line是否显示左边分割线Booleanfalsetrue

Event

事件名说明回调参数版本
loadmorestatusloadmore时,点击组件会发出此事件--

Copyright © 2017 10yun.com | 十云提供计算服务-IPV6 | ctocode组开发