vue、uniapp 下拉刷新和加载更多

1、html文件中:

<scroll-view class="mt-scroll" scroll-y="true" refresher-enabled="true" 
:refresher-triggered="isRefreshing" refresher-background="#F6F7FB"  @refresherrefresh="reload" @scrolltolower="loadMore">
			<view class="expert-item flex" v-for="item,index in expertList" :key="index">
				。。。。
			</view>
			<uni-load-more :status="listStatus"></uni-load-more>
</scroll-view>

2、js部分:

data() {
			return {
				expertList: [],
				userInfo: {},
				params: {
					page: 1,
					pagesize: 10
				},
				listStatus: 'nomore',
				isRefreshing: false //界面下拉的状态
			};
		},

methods: {

          //获取数据列表
          async getMajorList() {
				this.listStatus = 'loading'
				let res = await csjha.getMajorList(this.params)
				if (res.code == 1) {
					if (this.params.page == 1) {
						this.expertList = []
					}
					let newList = res.data
					if (newList.length >= this.params.pagesize) {
						this.listStatus = 'more'
					} else {
						this.listStatus = 'nomore'
					}
					this.expertList.push(...newList)
					this.isRefreshing = false
				}
			},


            //下拉刷新
			reload() {
				this.isRefreshing = true;
				this.params.page = 1
				this.getMajorList()
			},


			//加载更多
			loadMore() {
				console.log('有没有走加载更多')
				if (this.listStatus == 'more') {
					this.params.page += 1
					this.getMajorList()
				}
			},
}

下拉刷新是指用户在页面顶部向下滑动,触发刷新操作,常用于列表数据的更新。在uniApp中,可以使用自带的下拉刷新组件来实现下拉刷新功能。具体步骤如下: 1. 在需要添加下拉刷新功能的页面的`<template>`标签中添加下拉刷新组件代码: ```html <scroll-view class="content" scroll-y="true" enable-back-to-top> <!-- 下拉刷新组件 --> <view class="refresh" slot="refresher"> <text class="refresh-text">{{refreshText}}</text> <loading class="refresh-icon" :show="refreshing"></loading> </view> <!-- 列表数据 --> <view class="list" v-for="(item, index) in list" :key="index">{{item}}</view> </scroll-view> ``` 2. 在`<script>`标签中添加下拉刷新相关的数据方法: ```javascript export default { data() { return { list: [], // 列表数据 refreshing: false, // 是否正在刷新 refreshText: '下拉刷新', // 刷新提示文本 } }, methods: { // 下拉刷新事件 onPullDownRefresh() { this.refreshText = '正在刷新...' this.refreshing = true // 模拟异步请求数据 setTimeout(() => { this.list = ['数据1', '数据2', '数据3'] this.refreshText = '下拉刷新' this.refreshing = false uni.stopPullDownRefresh() // 停止下拉刷新 }, 2000) }, }, } ``` 3. 在`<style>`标签中添加下拉刷新相关的样式: ```css .refresh { display: flex; justify-content: center; align-items: center; height: 80rpx; font-size: 28rpx; color: #999; } .refresh-text { margin-left: 20rpx; } .refresh-icon { width: 40rpx; height: 40rpx; margin-left: 10rpx; } ``` 在上述代码中,我们使用了`scroll-view`组件来实现滚动列表,并在其中添加了下拉刷新组件。当用户下拉列表时,会触发`onPullDownRefresh`方法,我们可以在该方法中模拟异步请求数据,并在请求完成后调用`uni.stopPullDownRefresh()`方法来停止下拉刷新
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值