vue3+emelenui实现前端分页功能—最简单

在一些后台管理系统或者博客管理系统中分页功能是很常见的一种服务,因为总不可能把很多数据放在一块,那样阅读起来很麻烦,所以需要分页。也是前后端中最为常见的一个功能

 先看一下分页场景的模拟。

 首先我们要去后端写点数据通过接口给前端:

//控制类:
package com.example.vue3spring.controller;import com.example.vue3spring.entity.Cell;
import com.example.vue3spring.mapper.celllist;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;@RestController
public class Celllists {@Autowiredprivate celllist cells;@RequestMapping(value = "/celllist",method = RequestMethod.GET)@CrossOriginpublic List<Cell> cel(){List<Cell> cell1 = cells.cell();return  cell1;}
}
//实体类
package com.example.vue3spring.entity;public class Cell {private int id;private String number;private String name;private String address;private String area;private int loudong;private int households;private int affores;private String developers;private  String property;private String creationtime;private String state;@Overridepublic String toString() {return "Cell{" +"id=" + id +", number='" + number + '\'' +", name='" + name + '\'' +", address='" + address + '\'' +", area='" + area + '\'' +", loudong=" + loudong +", households=" + households +", affores=" + affores +", developers='" + developers + '\'' +", property='" + property + '\'' +", creationtime='" + creationtime + '\'' +", state='" + state + '\'' +'}';}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getNumber() {return number;}public void setNumber(String number) {this.number = number;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public String getArea() {return area;}public void setArea(String area) {this.area = area;}public int getLoudong() {return loudong;}public void setLoudong(int loudong) {this.loudong = loudong;}public int getHouseholds() {return households;}public void setHouseholds(int households) {this.households = households;}public int getAffores() {return affores;}public void setAffores(int affores) {this.affores = affores;}public String getDevelopers() {return developers;}public void setDevelopers(String developers) {this.developers = developers;}public String getProperty() {return property;}public void setProperty(String property) {this.property = property;}public String getCreationtime() {return creationtime;}public void setCreationtime(String creationtime) {this.creationtime = creationtime;}public String getState() {return state;}public void setState(String state) {this.state = state;}
}
//映射数据库关系
package com.example.vue3spring.mapper;import com.example.vue3spring.entity.Cell;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;import java.util.List;@Mapper
@Repository
public interface celllist {@Select("select * from Celllist")public List<Cell> cell();
}

连接数据库:

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springboot?useSSL=false
spring.datasource.username=root
spring.datasource.password=w123456789
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

pom文件依赖:

        </dependency><!--        mybatis-plus依赖--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version></dependency><!--        mysql驱动依赖--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.23</version></dependency><!--        数据连接池--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.23</version></dependency>

SQl文件;

/*
Navicat MySQL Data TransferSource Server         : springbootSQL
Source Server Version : 80030
Source Host           : localhost:3306
Source Database       : springbootTarget Server Type    : MYSQL
Target Server Version : 80030
File Encoding         : 65001Date: 2023-09-10 14:14:00
*/SET FOREIGN_KEY_CHECKS=0;-- ----------------------------
-- Table structure for celllist
-- ----------------------------
DROP TABLE IF EXISTS `celllist`;
CREATE TABLE `celllist` (`id` int NOT NULL AUTO_INCREMENT,`number` varchar(55) DEFAULT NULL,`name` varchar(255) DEFAULT NULL,`address` varchar(255) DEFAULT NULL,`area` varchar(255) DEFAULT NULL COMMENT '面积\r\n',`loudong` int DEFAULT NULL,`households` int DEFAULT NULL,`afforest` int DEFAULT NULL,`developers` varchar(255) DEFAULT NULL,`property` varchar(255) DEFAULT NULL,`creationtime` varchar(255) DEFAULT NULL,`state` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;-- ----------------------------
-- Records of celllist
-- ----------------------------
INSERT INTO `celllist` VALUES ('1', 'z_40586661', '金域华府', '合肥市蜀山区', '12000', '25', '160', '45', '万科', '万科物业', '2023-09-10 09:50:54.000000', '正常');
INSERT INTO `celllist` VALUES ('2', 'z_40586660', '金域华府', '合肥市撒的去', '1145', '21', '145', '39', '徐汇', '永生物业', '2023-09-09 09:52:14.000000', '正常');
INSERT INTO `celllist` VALUES ('3', 'z_40586662', '万福国际', '湖北省武汉市', '1658', '36', '256', '60', '天湖', '天湖物业', '2023-08-29 09:53:19.000000', '正常');
INSERT INTO `celllist` VALUES ('4', 'z_40586663', '暨南国际', '湖北省北京市', '568', '145', '485', '30', '背景', '背景物业', '2023-09-12 09:54:17.000000', '正常');

前端vue+elementui部分:

<template>
<div style="width: 100% ;margin:0px 10px"><el-input class="search" v-model="search" placeholder="Please input" /><el-button type="primary">查询</el-button><div style="margin:15px"><el-button type="warning" :icon="Delete">批量删除</el-button><el-button type="primary" :icon="CirclePlus">添加</el-button></div><!-- (当前页数-1)*每页条数,当前页数*当前条数 --><el-table :data="tableData.slice((page-1)*limt,page*limt)" style="width: 100%;"><el-table-column prop="id" type="selection" width="55" /><el-table-column prop="id" label="ID" width="55" /><el-table-column prop="number" label="小区编号" width="55" /><el-table-column prop="name" label="小区名称" /><el-table-column prop="address" label="坐落地址" /><el-table-column prop="area" label="占地面积(m2)" /><el-table-column prop="loudong" label="总栋数" /><el-table-column prop="households" label="总户数" /><el-table-column prop="affores" label="绿化率" /><el-table-column prop="developers" label="开发商名称" /><el-table-column prop="property" label="物业公司名称" /><el-table-column prop="creationtime" label="创建时间" /><el-table-column prop="state" label="状态" /><el-table-column prop="address" label="操作" /></el-table><el-pagination background layout="total, sizes, prev, pager, next, jumper" :page-size="limt" style="margin-top:2%":page-sizes="[10, 20, 30, 40]":current-page="page":total="totl"@size-change="handleSizeChange"@current-change="handleCurrentChange"/>
</div>
</template><script setup>
import { CirclePlus,Delete } from '@element-plus/icons-vue'
import {ref} from 'vue'
import axios from 'axios';
const search = ref("");
const tableData = ref([]);
const page = ref(1);
const limt = ref(1);
const totl = ref(0);
axios({url:"http://localhost:8080/celllist",method:"get"
}).then(res=>{console.log(res.data);tableData.value=res.data;console.log(tableData.value);totl.value=res.data.length
})
function handleSizeChange(val){console.log(val);limt.value=val;
}
function handleCurrentChange(val){console.log(val);page.value=val
}
</script><style scoped>
.search{margin: 50px 10px 50px 50px;width: 25%;
}
</style>

若有不懂地方,推荐视频:https://www.bilibili.com/video/BV1Q3411u7cF/?p=2&spm_id_from=pageDriver&vd_source=0621c8112dd04675d7876e772210635b

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/107896.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue中v-model应用于表单元素

v-model应用于表单元素 常见的表单元素都可以用v-model绑定关联→快速获取或设置 表单元素的值它会根据控件类型自动选取正确的方法来更新元素 常见的表单元素&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8&…

MySQL的用户管理

1、MySQL的用户管理 &#xff08;1&#xff09;创建用户 create user zhang3 identified by 123123;表示创建名称为zhang3的用户&#xff0c;密码设为123123。 &#xff08;2&#xff09;了解user表 1&#xff09;查看用户 select host,user,authentication_string,select…

【C++杂货铺】优先级队列的使用指南与模拟实现

文章目录 一、priority_queue的介绍二、priority_queue的使用2.1 数组中的第k个最大元素 三、priority_queue模拟实现3.1 仿函数3.2 成员变量3.3 成员函数3.3.1 构造函数3.3.2 AdjustDown3.3.3 push3.3.4 AdjustUp3.3.5 pop3.3.6 empty3.3.7 size 四、结语 一、priority_queue的…

蓝桥杯官网练习题(搭积木)

类似题目&#xff1a; https://blog.csdn.net/s44Sc21/article/details/132758982?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22132758982%22%2C%22source%22%3A%22s44Sc21%22%7Dhttps://blog.csdn.net/s44Sc21/article/deta…

【代码分析】初学解惑C++:函数适配器

文章目录 前置知识 运算符的重载“&#xff08;&#xff09;”一、函数适配器是什么&#xff1f;由遇到的问题引出适配器模式类模式对象模式例1例2例3例4二、实现函数适配器1.定义函数2.定义函数适配器3.使用函数适配器 三、带模板的函数适配器1、自定义unary_function2、改写带…

kafka-- 安装kafka manager及简单使用

一 、安装kafka manager 管控台&#xff1a; # 安装kafka manager 管控台&#xff1a; ## 上传 cd /usr/local/software ## 解压 unzip kafka-manager-2.0.0.2.zip -d /usr/local/ cd /usr/local/kafka-manager-2.0.0.2/conf vim /usr/local/kafka-manager-2.0.0.2/conf/appl…

智能驾驶感知技术的综述与展望

目录 1 智能驾驶环境感知的目的 1.1 智能驾驶感知技术的定义和作用 1.2 基于传感器的智能驾驶感知技术 1.3 基于深度学习的智能驾驶感知技术 2 环境感知的手段与方法 2.1 感知技术在智能驾驶中的应用与发展 2.2 智能驾驶决策系统的设计与优化 2.3 控制技术在智能驾驶中的应…

D. Matrix Cascade(结构体记录前面对后面的影响)

Problem - D - Codeforces 有一个大小为nn的矩阵&#xff0c;由0和1组成。行从上到下编号为1到n&#xff0c;列从左到右编号为1到n。交点(x,y)表示第x行和第y列的单元格。 AquaMoon想将矩阵的所有元素都变为0。在一步操作中&#xff0c;她可以执行以下操作&#xff1a; Plain …

Linux——(第十一章)软件包管理

目录 一、RPM 1.概述 2.RPM查询指令 3.RPM卸载指令 4.RPM安装命令 二、YUM 1.概述 2.YUM常用命令 一、RPM 1.概述 RPM&#xff08;RedHat Package Manager&#xff09;&#xff0c;RedHat软件包管理工具&#xff0c;类似windows里面的setup.exe是Linux这系列操作系统里…

IDEA中的“Deployment“ 将项目直接部署到服务器上

ntelliJ IDEA中的"Deployment"工具栏是一个方便的工具&#xff0c;用于将你的项目直接部署到服务器上。这个工具栏提供了三种部署的方式&#xff1a; 1.Web Server在本地电脑上&#xff0c;并且服务器运行目录也在项目目录下。 2.Web Server在本地电脑上&#xff0c;…

ArcGIS10.1软件安装教程

ArcGIS10.1中英文&#xff08;32/64位)下载地址&#xff1a; 链接&#xff1a; https://pan.baidu.com/s/1Ksm112WaKMMk6La9ircCng 密码&#xff1a;t70f 安装步骤&#xff1a; 1、我们对安装包进行解压&#xff0c;直接鼠标右击解压即可。 2、 打开我们解压的文件夹&#…

MySQL安装validate_password_policy插件

功能介绍 validate_password_policy 是插件用于验证密码强度的策略。该参数可以设定三种级别&#xff1a;0代表低&#xff0c;1代表中&#xff0c;2代表高。 validate_password_policy 主要影响密码的强度检查级别&#xff1a; 0/LOW&#xff1a;只检查密码长度。 1/MEDIUM&am…