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>

相关推荐
UXbot4 小时前
UI设计工具推荐合集
前端·人工智能·ui
攻城狮7号4 小时前
不懂代码也能造?TRAE+GLM-4.6 手把手教你搭心理咨询智能客服小程序
python·小程序·uni-app·vue·trae·glm我的编程搭子·glm-4.6
敲敲了个代码4 小时前
如何优化批量图片上传?队列机制+分片处理+断点续传三连击!(附源码)
前端·javascript·学习·职场和发展·node.js
@AfeiyuO5 小时前
Vue 引入全局样式scss
前端·vue·scss
光影少年5 小时前
flex布局和grid布局区别,实现两边固定布局中间自适应
前端·css3·web·ai编程
全栈测试笔记5 小时前
异步函数与异步生成器
linux·服务器·前端·数据库·python
EndingCoder5 小时前
配置 tsconfig.json:高级选项
linux·前端·ubuntu·typescript·json
木风小助理5 小时前
JavaStreamAPI的性能审视,优雅语法背后的隐形成本与优化实践
java·前端·数据库
QQ588501986 小时前
Python_uniapp-心理健康测评服务微信小程序的设计与实现
python·微信小程序·uni-app
white-persist6 小时前
轻松抓包微信小程序:Proxifier+Burp Suite教程
前端·网络·安全·网络安全·微信小程序·小程序·notepad++