当前位置: 首页 > news >正文

vue中分页查询的实现

在 Vue 中实现分页查询可以提升大型数据集的加载和显示效率。本文将逐步介绍如何使用 Vuex 状态管理和 axios HTTP 请求库来实现 Vue 分页查询。

1. 在 Vuex 中创建分页状态

首先,在 Vuex 状态管理中创建分页状态,该状态将存储每页的记录数、当前页码和正在加载数据的布尔值。例如:

const state = {currentPage: 1,pageSize: 10,isLoading: false,
}

2. 获取数据并更新状态

接下来,在组件的方法中使用 axios 向服务器发送 HTTP 请求以获取数据。在请求之前,将 isLoading 状态设置为 true,以在数据加载期间显示加载指示器。

async fetchRecords() {this.isLoading = true;const res = await axios.get(`/api/records?page=${this.currentPage}&size=${this.pageSize}`);this.records = res.data;this.isLoading = false;
}

3. 创建分页器组件

创建分页器组件来控制分页行为。该组件应提供导航按钮以在不同页面之间移动。

<template><nav><button>上页</button><button>下页</button></nav></template><script>
export default {methods: {prevPage() {if (this.currentPage > 1) this.currentPage--;},nextPage() {if (this.currentPage < this.totalPages) this.currentPage++;},},
}
</script>

4. 监听状态变化并重新获取数据

在组件中监听 currentPage 或 pageSize 状态变化,并在值发生变化时重新获取数据。

watch: {currentPage() {this.fetchRecords();},pageSize() {this.currentPage = 1;this.fetchRecords();},
}

5. 在视图中使用分页数据

最后,在视图中使用分页后的数据。例如,可以使用 v-for 指令来遍历记录并将其显示在表格中。

<div v-if="!isLoading"><table>
<thead><tr>
<th>ID</th><th>名称</th></tr></thead>
<tbody><tr v-for="record in records" :key="record.id">
<td>{{ record.id }}</td><td>{{ record.name }}</td></tr></tbody>
</table>
</div>

http://www.lryc.cn/news/355187.html

相关文章:

  • 类 和 对象(二)
  • buu[HCTF 2018]WarmUp(代码审计)
  • 力扣爆刷第145天之图论五连刷(dfs和bfs)
  • Host头攻击-使用加密和身份验证机制
  • 衍生品赛道的 UniSwap:SynFutures 或将成为行业领军者
  • TypeScript中的`let`、`const`、`var`区别:变量声明的规范与实践
  • 【python】python商家会员数据分析可视化(源码+数据集+课程报告论文)
  • Python限制输入的数范围
  • postman都有哪些功能?
  • 华为ensp中USG6000V防火墙双机热备VRRP+HRP原理及配置
  • ROS for LabVIEW:实现LabVIEW与ROS的无缝集成
  • yolov8+ROS+ubuntu18.04——学习记录
  • Java小抄(一)|Java中的List与Set转换
  • 【每日随笔】小人畏威不怀德 , 君子畏德不畏威 ( 先礼后兵 )
  • 不一样的2024
  • linux mv操作和cp操作
  • 第十二届蓝桥杯物联网试题(国赛)
  • 小而美的前端库推荐
  • 【LeetCode】力扣第 399 场周赛 优质数对的总数 II
  • YOLOv8+PyQt5面部表情检测系统完整资源集合(yolov8模型,从图像、视频和摄像头三种路径识别检测,包含登陆页面、注册页面和检测页面)
  • ROS 工作空间
  • 【科普】ChatGPT-4o 是什么?和之前的ChatGPT4.0有什么区别,各有什么优劣势
  • django-celery-beat自动调度异步任务
  • 【CSharp】将ushort数组保存为1通道位深16bit的Tiff图片
  • Bug:Linux用户拥有r权限但无法打开文件【Linux权限体系】
  • 【Redis】Widows 和 Linux 下使用 Redis
  • 统计计算四|蒙特卡罗方法(Monte Carlo Method)
  • 大模型时代的具身智能系列专题(三)
  • 使用 FileZilla 在 Windows 和 Ubuntu 之间传文件
  • 【C++初阶】—— 类和对象 (上)