uniapp 右侧刷新图标 和 返回顶部图标的实现

javascript 复制代码
<template>
	<view class="container">
		<view class="layout">
			<view class="box" v-for="(item,index) in pets" :key="item._id">
				<view class="pic">
					<image :src="item.url" mode="widthFix" @click="onPreview(index)"></image>
				</view>
				<view class="text">{{item.content }}</view>
				<view class="author">---- {{item.author}}</view>
			</view>
		</view>
		<!-- 按钮刷新和返回顶部 -->
		<view class="float">
			<view class="item" @click="onRefresh">
				<!-- 组件->图标 -->
				<uni-icons type="refreshempty" size="30" color="#888"></uni-icons>
			</view>
			<view class="item" @click="onTop">
				<uni-icons type="up" size="30" color="#888"></uni-icons>
			</view> 
			<view class="box"></view>
		</view>
		
		<!-- 加载更多 -->
		<view class="loadMore">
			<uni-load-more status="more"></uni-load-more>
		</view>
	</view>
</template>
javascript 复制代码
<script setup>
import { ref } from 'vue';
//触底加载更多  ,下拉刷新API(下拉刷新需要在pages.json里面开启这项功能)
import {onReachBottom,onPullDownRefresh} from "@dcloudio/uni-app"
	const pets = ref([]);
	
	// 触底加载更多,实现连接,使用展开符
	// let arr1 = [1,2,3];
	// let arr2 = [4,5,6];
	// console.log([...arr1,...arr2]);
	
	// 点击预览
	const onPreview = function (index){
		let urls = pets.value.map(item=>item.url)
		uni.previewImage({
			current:index,
			urls
		})
		// console.log(index);
	}
	
	// 点击刷新
	const onRefresh = function(){
		console.log("刷新");
		// API->界面->下拉刷新
		uni.startPullDownRefresh()
	}
	// 返回顶部
	const onTop = function(){
		console.log("返回顶部");
		// API->界面->滚动
		uni.pageScrollTo({
			duration:1000,
			scrollTop:0
			
		})
	}
	
	// 发送网络请求
	function network(){
		uni.showLoading()
		uni.request({
			url:"https://tea.qingnian8.com/tools/petShow",
			data:{
				size:5,
				type: "dog"      //类型有all,cat,dog
			},
			header:{
				"access-key": "xxm456654#@"
			}
		}).then(res=>{
			console.log(res.data.data);
			console.log(res.data.errCode);
			if(res.data.errCode===0){
				// pets.value = res.data.data
				// 触底加载更多 ,展开符
				pets.value = [...pets.value,...res.data.data]
				console.log(pets.value);
			}else if(res.data.errCode===400){
				uni.showToast({
					title:res.data.errMsg,
					icon:"none"
				})
			}
			
		}).catch(err=>{
			uni.showToast({
				title:"请求有误,请重新刷新",
				icon:"none"
			})
		}).finally(()=>{
			uni.hideLoading();
			console.log(123);
			uni.stopPullDownRefresh();
		})
	};
	// 触底加载更多
	onReachBottom(()=>{
		network();
	})
	
	// 下拉刷新
	onPullDownRefresh(()=>{
		pets.value = [];// current.value = 0
		network();
	})
	network();
</script>

相关推荐
Asort11 分钟前
JavaScript 从零开始(六):控制流语句详解——让代码拥有决策与重复能力
前端·javascript
无双_Joney30 分钟前
[更新迭代 - 1] Nestjs 在24年底更新了啥?(功能篇)
前端·后端·nestjs
在云端易逍遥32 分钟前
前端必学的 CSS Grid 布局体系
前端·css
ccnocare33 分钟前
选择文件夹路径
前端
艾小码33 分钟前
还在被超长列表卡到崩溃?3招搞定虚拟滚动,性能直接起飞!
前端·javascript·react.js
闰五月34 分钟前
JavaScript作用域与作用域链详解
前端·面试
泉城老铁38 分钟前
idea 优化卡顿
前端·后端·敏捷开发
前端康师傅38 分钟前
JavaScript 作用域常见问题及解决方案
前端·javascript
司宸39 分钟前
Prompt结构化输出:从入门到精通的系统指南
前端