uniapp-下拉刷新、点击加载、上拉加载

该文章展示了如何在Vue.js应用中使用组件实现下拉刷新(refresher)和滚动到底部加载更多(loadmore)的功能。代码示例中包含了`u-navbar`用于导航,`scroll-view`用于滚动内容,并配置了相应的阈值和触发状态。同时,文章还涉及数据请求和状态管理,如列表加载状态的切换。
摘要由CSDN通过智能技术生成
<template>
	<view class="good-list">
		<u-navbar title="test page" :fixed="true" placeholder
			titleStyle="font-size:17px;font-weight: 500;color: #060606;" bgColor="rgba(0,0,0,0)" leftIcon=" "
			height="44px" @doubleClick="resetList"></u-navbar>

		<u-sticky offset-top="44">
			<text style="height:30px">此处是吸顶此处是吸顶此处是吸顶此处是吸顶此处是吸顶</text>
		</u-sticky>

		<!-- refresher-enabled:开启自定义下拉刷新 -->
		<!-- enable-back-to-top:iOS点击顶部状态栏、安卓双击标题栏时,滚动条返回顶部,只支持竖向-->
		<!--  refresher-threshold:设置自定义下拉刷新阈值-->
		<!-- refresher-triggered:设置当前下拉刷新状态,true 表示下拉刷新已经被触发,false 表示下拉刷新未被触发 -->
		<!-- @refresherrefresh:触发自定义下拉刷新 -->
		<!-- list-content:必须设置高度 -->
		<!-- @scrolltolower:滚动到距离底部多少触发事件 -->
		<scroll-view class="list-content" :scroll-y="true" :refresher-enabled="true" :enable-back-to-top="true"
			:refresher-threshold="100" :refresher-triggered="triggered" @refresherrefresh="refresh" @scrolltolower="testRefresh"
			V-if="list.length>0">
			<view class="card-view" v-for="(item, pos) in list" :key="pos">
				<view style="height: 40px;">{{item.goodsName}}</view>
			</view>
			<view class="card-last">
				<!-- loadStatus: 组件状态 loading / nomore-->
				<!--  -->
				<u-loadmore :status="loadStatus" @loadmore="loadmorea" />
			</view>
		</scroll-view>

	</view>
</template>

<script>
	export default {
		data() {
			return {
				param: {
					pageNum: 1,
					pageSize: 10,
					sourceType: 1
				},
				list: [],
				loadStatus: 'loadmore',
				triggered: false,
			}
		},
		onLoad(options) {
			this.getList()
		},
		methods: {
			getList() {
				this.$http({
					url: "/materialShop/getShop",
					data: this.param,
				}).then((res) => {
					//数据请求返回后从设刷新状态值
					this.triggered = false
					let data = res.data[0] || [];

					if (data.list && data.list.length) {
						if(this.param.pageNum == 1){
							this.list=[...data.list];
						}else{
							this.list.push(...data.list);
						}
						
						if (data.total <= data.pageNum * data.pageSize) {
							this.loadStatus = 'nomore';
						} else {
							this.loadStatus = 'loadmore';
						}
					} else {
						this.loadStatus = 'nomore';
					}
				});
			},
			loadmorea() {
				if (this.triggered) return;
				this.param.pageNum = this.param.pageNum + 1;
				this.loadStatus = 'loading';
				this.getList()
			},
			refresh() {
				this.triggered = true
				this.param.pageNum = 1
				this.getList()
			},
			testRefresh(){
				console.log('到底啦~~~~')
			}
		}
	}
</script>

<style>
	.list-content {
		height: 600px;
	}
</style>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值