uni-app实现前端分页功能

今天晚上被这个分页功能折腾了一个晚上,真是搞人心态。

就想实现一个简单的前端实现的分页功能都这么麻烦,看的每个教程都要连后端,反倒前端怎么处理分页的逻辑都是支支吾吾的,大半夜气死我了

下面是我搞出来的代码,留个纪念以防以后有需要

<template>
	<view>
		<!-- 渲染当前页的内容 -->
		<view v-for="item in paginatedItems" :key="item.id">
			<view>{{ item.word }}</view>
		</view>
		<!-- 分页器 -->
		<uni-pagination :current="currentPage" :total="total" @change="pageChanged" :pageSize="pageSize" />
	</view>
</template>

<script>
	export default {
		data() {
			return {
				items: [
					{ id: 1, word: "item 1" },
					{ id: 2, word: "item 2" },
					{ id: 3, word: "item 3" },
					{ id: 4, word: "item 4" },
					{ id: 5, word: "item 5" },
					{ id: 6, word: "item 6" },
					{ id: 7, word: "item 7" },
					{ id: 8, word: "item 8" },
					{ id: 9, word: "item 9" },
					{ id: 10, word: "item 10" },
					{ id: 11, word: "item 11" },
					{ id: 12, word: "item 12" },
					{ id: 13, word: "item 13" },
					{ id: 14, word: "item 14" },
					{ id: 15, word: "item 15" },
					{ id: 16, word: "item 16" },
					{ id: 17, word: "item 17" },
					{ id: 18, word: "item 18" },
					{ id: 19, word: "item 19" },
					{ id: 20, word: "item 20" }
				],
				currentPage: 1, // 当前页码
				pageSize: 5, // 每页显示的记录数
				total: 0 // 总页数
			};
		},
		onShow() {
			this.totalPages();
		},
		computed: {
			paginatedItems() {
				const startIndex = (this.currentPage - 1) * this.pageSize;
				const endIndex = startIndex + this.pageSize;
				return this.items.slice(startIndex, endIndex);
			}
		},
		methods: {
			totalPages() {
				this.total = this.items.length;
			},
			// 分页器点击监听
			pageChanged(e) {
				console.log(e.current);
				this.currentPage = e.current;
			},
		}
	};
</script>

下面是效果图
效果图如下

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值