Vue3实现elementplus实现分页查询,组合式API写法

server/2024/9/24 17:14:15/

在Vue 3中使用Element Plus实现分页查询时,通常会利用组合式API(Composition API)来组织代码,使得逻辑更加清晰和模块化。以下是一个基本的示例,展示了如何在Vue 3项目中结合Element Plus的分页组件和组合式API来实现分页查询功能。

首先,确保你的项目中已经安装了Vue 3和Element Plus。

然后,在你的Vue组件中,你可以这样编写代码:

javascript"><template>  <div>  <!-- 数据列表展示区域 -->  <div v-for="item in tableData" :key="item.id">  {{ item.name }}  </div>  <!-- 分页组件 -->  <el-pagination  @size-change="handleSizeChange"  @current-change="handleCurrentChange"  :current-page="currentPage"  :page-sizes="[10, 20, 30, 40]"  :page-size="pageSize"  layout="total, sizes, prev, pager, next, jumper"  :total="total">  </el-pagination>  </div>  
</template>  <script setup>  
import { ref, onMounted } from 'vue';  
import { ElPagination } from 'element-plus';  // 假设这是从后端API获取数据的函数  
async function fetchData(page, pageSize) {  // 这里应该是真实的API调用,这里用模拟数据代替  const mockData = Array.from({ length: pageSize }, (_, k) => ({  id: (page - 1) * pageSize + k + 1,  name: `Item ${(page - 1) * pageSize + k + 1}`  }));  return {  data: mockData,  total: 100 // 假设总条数是100  };  
}  const currentPage = ref(1);  
const pageSize = ref(10);  
const total = ref(0);  
const tableData = ref([]);  // 处理每页显示条数改变  
const handleSizeChange = (newSize) => {  pageSize.value = newSize;  fetchData(currentPage.value, newSize).then(({ data, total }) => {  tableData.value = data;  total.value = total;  });  
};  // 处理当前页码改变  
const handleCurrentChange = (newPage) => {  currentPage.value = newPage;  fetchData(newPage, pageSize.value).then(({ data }) => {  tableData.value = data;  });  
};  // 组件挂载后加载第一页数据  
onMounted(() => {  fetchData(currentPage.value, pageSize.value).then(({ data, total }) => {  tableData.value = data;  total.value = total;  });  
});  
</script>  <style scoped>  
/* 你的样式 */  
</style>

注意:

  1. <script setup>语法中,我们使用了Vue 3的组合式API,如refonMounted
  2. fetchData函数模拟了从后端API获取数据的操作。在实际应用中,你应该替换这个函数以调用真实的API。
  3. 我们通过监听size-changecurrent-change事件来分别处理每页显示条数的改变和当前页码的改变。
  4. 使用ref来创建响应式的数据,如currentPagepageSizetotaltableData
  5. onMounted生命周期钩子用于在组件挂载后立即加载第一页的数据。

这样,你就完成了一个基本的分页查询功能的实现。


http://www.ppmy.cn/server/111968.html

相关文章

window 10使用wsl装docker踩坑

由于docker desktop在我这台电脑 window版本没法用linux的切换到linux无法开启&#xff0c;干脆用 wsl装linux比较爽 在应用商店搜索unbuntu 刚开始我用的是apt-get install docker-ce压根不行 然后进行安装curl -fsSL get.docker.com -o get-docker.sh image.png 执行下载的do…

sql日期函数

目录 sql日期函数 1.获取日期时间函数 1.1 获取当前日期时间 1.2 获取当前日期 1.3 获取当前时间 2.datetime数据类型格式化 3.字符串数据类型转换成datetime数据类型 4.增加和减少时间间隔 5. 日期相差天数&#xff08;天&#xff09; 6. 相差时间&#xff08;小时&am…

create-react-app执行eject之后出现的报错提示

[BABEL] App.js: Using babel-preset-react-app requires that you specify NODE_ENV or BABEL_ENV environment variables. Valid values are “development”, “test”, and “production”. In 处理方式&#xff1a; package.json中&#xff0c;添加 "eslintConfig&…

macos 系统 降级, 重装, 升级图文教程

最近一不小心mac被升级到了最新版本, 在使用vscode的时候经常卡顿,于是有了降级macos的想法! 于是就有了这macos的系统降级 , 重装, 升级图文教程. 本文重点介绍macos降级, 重装过程, 至于升级, 这个一不小心就会被升级(通过应用商店)基本上都是自动升级的,所以不做更多说明. …

鸿蒙模拟器篇

1、首先需要在华为官网申请模拟器资格&#xff0c;附链接&#xff1a;鸿蒙模拟器&#xff08;HarmonyOS Emulator&#xff09;Beta活动申请 填写相关信息提交申请&#xff0c;申请结果状态在个人中心 — 我的活动页面查看 2、申请通过之后开始下载模拟器 注意&#xff1a…

Python程序交易助你发现均线粘合的股票

炒股自动化&#xff1a;申请官方API接口&#xff0c;散户也可以 python炒股自动化&#xff08;0&#xff09;&#xff0c;申请券商API接口 python炒股自动化&#xff08;1&#xff09;&#xff0c;量化交易接口区别 Python炒股自动化&#xff08;2&#xff09;&#xff1a;获取…

深入理解PyTorch中的`torch.topk`函数!!!(个人总结,为了方便我自己复习,要是同时也能帮助到大家就更好了)

torch.topk 深入理解PyTorch中的torch.topk函数1. torch.topk函数概述函数签名返回值 2. 基本用法示例1&#xff1a;找到一维张量的最大值示例2&#xff1a;在二维张量的指定维度上操作 3. 高级应用4. 结论 深入理解PyTorch中的torch.topk函数 在深度学习和数据处理中&#xf…

解析C++内联函数与auto关键字

&#x1f308;个人主页&#xff1a;Yui_ &#x1f308;Linux专栏&#xff1a;Linux &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#x1f308;数据结构专栏&#xff1a;数据结构 &#x1f308;C专栏&#xff1a;C 文章目录 1. 内联函数1.1 概念1.2 内联的特性1.3 内联与…