Vue3初学之Element-plus-table组件及分页

ops/2025/1/16 16:15:08/

官方网址:https://element-plus.org/zh-CN/component/table.html

  1. 安装 Element Plus
    npm install element-plus --save

  2. 引入 Element Plus
    在 main.js 或 main.ts 文件中引入 Element Plus:

import ElementPlus from ‘element-plus’;
import ‘element-plus/dist/index.css’;
app.use(ElementPlus);

3.使用 el-table 组件
自定义列,例如添加操作按钮
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4. 编辑功能
允许用户直接在表格中编辑数据:

<template>   <div class="container"><el-table :data="tableData" style="width: 100%"><el-table-column prop="date" label="日期" width="180"><template #default="scope"><el-input v-if="scope.row._edit" v-model="scope.row.date" /><span v-else>{{ scope.row.date }}</span></template></el-table-column><el-table-column prop="name" label="姓名" width="180"><template #default="scope"><el-input v-if="scope.row._edit" v-model="scope.row.name" /><span v-else>{{ scope.row.name }}</span></template></el-table-column><el-table-column prop="address" label="地址"><template #default="scope"><el-input v-if="scope.row._edit" v-model="scope.row.address" /><span v-else>{{ scope.row.address }}</span></template></el-table-column><el-table-column label="操作" width="180"><template #default="scope"><div v-if="scope.row._edit"><el-button type="primary" @click="handleSave(scope)">保存</el-button><el-button @click="handleCancel(scope)">取消</el-button></div><el-button v-else type="primary" @click="handleEdit(scope)">编辑</el-button></template></el-table-column></el-table>   </div> </template><script setup> import { ref } from 'vue';const tableData = ref([   {date: '2016-05-02',name: '张三',address: '上海市普陀区金沙江路 1518 弄',_edit: false,   },   {date: '2016-05-04',name: '李四',address: '上海市普陀区金沙江路 1517 弄',_edit: false,   },   {date: '2016-05-01',name: '王五',address: '上海市普陀区金沙江路 1519 弄',_edit: false,   },   {date: '2016-05-03',name: '赵六',address: '上海市普陀区金沙江路 1516 弄',_edit: false,   }, ]);const handleEdit = (scope) => {   scope.row._edit = true; };const handleSave = (scope) => {   scope.row._edit = false;  console.log('保存', scope.row); };const handleCancel = (scope) => {   scope.row._edit = false; };</script>

5.使用 el-pagination 组件
与el-table组合
在这里插入图片描述

<template><div class="container"><el-table :data="tableData" style="width: 100%"><el-table-column prop="date" label="日期" width="180" /><el-table-column prop="name" label="姓名" width="180" /><el-table-column prop="address" label="地址" /></el-table><el-pagination:current-page="currentPage":page-sizes="[10, 20, 50, 100]":page-size="pageSize"layout="total, sizes, prev, pager, next, jumper":total="total"@size-change="handleSizeChange"@current-change="handleCurrentChange"/></div>
</template><script setup>
import { ref } from 'vue';const tableData = ref([// 初始数据
]);const currentPage = ref(1);
const pageSize = ref(10);
const total = ref(100);const handleSizeChange = (newSize) => {pageSize.value = newSize;fetchTableData();
};const handleCurrentChange = (newPage) => {currentPage.value = newPage;fetchTableData();
};const fetchTableData = () => {// 模拟数据请求const start = (currentPage.value - 1) * pageSize.value;const end = start + pageSize.value;tableData.value = data.slice(start, end);
};const data = [// 你的完整数据{date: '2016-05-02',name: '张三',address: '上海市普陀区金沙江路 1518 弄',},{date: '2016-05-02',name: '张三',address: '上海市普陀区金沙江路 1518 弄',},{date: '2016-05-02',name: '张三',address: '上海市普陀区金沙江路 1518 弄',},{date: '2016-05-02',name: '张三',address: '上海市普陀区金沙江路 1518 弄',},{date: '2016-05-02',name: '张三',address: '上海市普陀区金沙江路 1518 弄',},{date: '2016-05-02',name: '张三',address: '上海市普陀区金沙江路 1518 弄',},{date: '2016-05-02',name: '张三',address: '上海市普陀区金沙江路 1518 弄',},{date: '2016-05-02',name: '张三',address: '上海市普陀区金沙江路 1518 弄',},{date: '2016-05-02',name: '张三',address: '上海市普陀区金沙江路 1518 弄',},  {date: '2016-05-02',name: '张三',address: '上海市普陀区金沙江路 1518 弄',},{date: '2016-05-04',name: '李四',address: '上海市普陀区金沙江路 1517 弄',},];
</script>

http://www.ppmy.cn/ops/150594.html

相关文章

基于springboot+vue+微信小程序的宠物领养系统

基于springbootvue微信小程序的宠物领养系统 一、介绍 本项目利用SpringBoot、Vue和微信小程序技术&#xff0c;构建了一个宠物领养系统。 本系统的设计分为两个层面&#xff0c;分别为管理层面与用户层面&#xff0c;也就是管理者与用户&#xff0c;管理权限与用户权限是不…

小程序如何引入腾讯位置服务

小程序如何引入腾讯位置服务 1.添加服务 登录 微信公众平台 注意&#xff1a;小程序要企业版的 第三方服务 -> 服务 -> 开发者资源 -> 开通腾讯位置服务 在设置 -> 第三方设置 中可以看到开通的服务&#xff0c;如果没有就在插件管理中添加插件 2.腾讯位置服务…

从项目代码看 React:State 和 Props 的区别及应用场景实例讲解

在 React 中&#xff0c;state 和 props 是组件的两个重要概念&#xff0c;它们有不同的作用和应用场景。理解它们之间的区别对于开发 React 应用至关重要。 1. state 和 props 的区别 props (属性)&#xff1a; props 是由父组件传递给子组件的数据或函数。props 是只读的&am…

Kafka 超级简述

Kafka 就是一个 分布式的消息系统&#xff0c;它帮助不同的系统和应用之间传递信息。可以把它想象成一个超级高效的 “邮局”&#xff1a; 生产者&#xff08;Producer&#xff09; 就是把信息&#xff08;消息&#xff09;送到这个 “邮局” 的人。消费者&#xff08;Consume…

ASP.NET Core - 缓存之分布式缓存

ASP.NET Core - 缓存之分布式缓存 1. 分布式缓存的使用2. 分布式缓存的接入2.1 基于内存的分布式缓存2.2 基于 Redis 的分布式缓存 分布式缓存是由多个应用服务器共享的缓存&#xff0c;通常作为访问它的应用服务器的外部服务进行维护。 分布式缓存可以提高 ASP.NET Core 应用的…

【微服务】面试 3、 服务监控 SkyWalking

微服务监控的原因 问题定位&#xff1a;在微服务架构中&#xff0c;客户端&#xff08;如 PC 端、APP 端、小程序等&#xff09;请求后台服务需经过网关再路由到各个微服务&#xff0c;服务间可能存在多链路调用。当某一微服务挂掉时&#xff0c;在复杂的调用链路中难以迅速确定…

如何使用 Java 的 Spring Boot 创建一个 RESTful API?

大家好&#xff0c;我是 V 哥&#xff0c;使用 Java 的 Spring Boot 创建 RESTful API 可以满足多种开发场景&#xff0c;它提供了快速开发、易于配置、可扩展、可维护的优点&#xff0c;尤其适合现代软件开发的需求&#xff0c;帮助你快速构建出高性能的后端服务。例如&#x…

模之屋模型导入到UE5

去模之屋随便下个模型 安装Blender2.8 插件 cats-blender-plugin &#xff0c; 打开blender 2.8转换 pmx转换fbx https://github.com/absolute-quantum/cats-blender-plugin Index of /release/Blender2.80/ 修改单位 修复贴图 更高清了 点fix model 修复模型 改为编辑模式…