SSMP整合案例第八步 前端页面的分页功能完善与维护和实现条件查询

简介: SSMP整合案例第八步 前端页面的分页功能完善与维护和实现条件查询

分页

页面中有分页展示

查看组件

想用什么直接编辑

vue里面的常量数据

可以修改模型数据达到修改展示效果的能力

Vue.js 中,通常会将不经常修改且在整个应用程序中共享的数据定义为常量数据。常量数据可以是在组件中定义的静态数据,也可以是通过 Vuex 管理的全局状态。

先在前端进入的时候加载分页数据

钩子函数(Hooks)是在软件开发中用于实现特定操作或者在特定事件发生时执行自定义代码的函数。在不同的编程语言和框架中,钩子函数的含义和用法可能有所不同。下面我将介绍几个常见的上下文中钩子函数的概念:

在前端开发中,特别是在使用 Vue.js 或 React 等框架时,钩子函数通常指的是生命周期钩子(Lifecycle Hooks),用于在组件生命周期的特定阶段执行代码。

  • Vue.js 中的生命周期钩子
  • beforeCreate:实例刚被创建,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。
  • created:实例已经创建完成后被调用。在这一步,实例已完成以下的配置:数据观测(data observer),属性和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见。
  • beforeMount:在挂载开始之前被调用:相关的 render 函数首次被调用。
//钩子函数,VUE对象初始化完成后自动执行
created() {
    //加载全部数据
    // this.getAll();
    //加载分页数据
    this.getPage();
},
 
methods: {
 
    //分页查询
    getPage() {
        console.log("getPage  run")//控制台打印
        axios.get("/users/"+this.pagination.currentPage+"/"+this.pagination.pageSize).then((res) => {
            this.dataList = res.data.data.records;
        });
    },

这样就能达到效果

修改数据模型绑定的数值

//分页查询
getPage() {
    console.log("getPage  run")//控制台打印
    axios.get("/users/"+this.pagination.currentPage+"/"+this.pagination.pageSize).then((res) => {
        this.pagination.pageSize=res.data.data.size;
        this.pagination.currentPage=res.data.data.current;
        this.pagination.total=res.data.data.total;
        this.dataList = res.data.data.records;
    });
},

这样在页面中就能展示出数据

修改后再执行查询就行

这样就能在页面中加载数据

分页的数据得从页面上拿 然后重新加载页面

小结

修改数据模型的数据

我们用axios发起一个以异步请求调用

获取分页数据

得到数据结果后 我们得拿到数据 进行工作

在改切换页码数据

将修改的页码值传递给数据模型中的currentPage这个属性

再重新执行更新刷新操作即可

分页功能维护

刚才还存在bug

比如我们把第三页的数据全部删掉后

页码还是后存在

应该不会显示当前页面,应该会显示前面的页面

所以我们会在controller中的查询中进行一个判断

@GetMapping("{currentPage}/{pageSize}")
public Result getPage(@PathVariable int currentPage ,@PathVariable int pageSize){
    IPage<User> page=userService.getPage(currentPage,pageSize);
    //如果当前页码值大于总页码值 那么重新执行查询操作 使用最大页码值作为大当前页码值
    if(currentPage>page.getPages()){
        page=userService.getPage((int) page.getPages(),pageSize);
    }
    System.out.println("分页数据:"+currentPage+" "+pageSize);
    return new Result(true,page);
}

这样就修改了这个bug

这个叫后台补救性方案

"后台补救性方案"这个术语通常可以解释为在某些问题或突发情况出现后,采取的应对措施或修复措施。具体的方案和实施会根据具体的情况和问题而有所不同,以下是一些常见的后台补救性方案示例:

  1. 数据库备份与恢复
  • 问题:数据库遭遇意外的数据损坏、删除或破坏性变更。
  • 解决方案:定期进行数据库备份,并确保备份的可靠性。在发生问题时,可以快速恢复到最近的备份状态。
  1. 缓存刷新
  • 问题:由于缓存中的数据不一致或过期,导致用户看到不正确的信息。
  • 解决方案:提供手动或自动的缓存刷新机制,确保在数据更新后及时刷新缓存,保持数据的一致性和准确性。
  1. 服务故障转移与恢复
  • 问题:某个服务或服务器出现故障,影响了系统的正常运行。
  • 解决方案:使用负载均衡和故障转移技术,确保系统可以自动切换到备用服务或服务器,并尽快恢复正常操作。
  1. 异常处理与日志记录
  • 问题:系统运行时出现异常或错误,但没有合适的错误处理和记录机制。
  • 解决方案:加强异常处理机制,记录详细的错误日志以便后续排查和分析问题的原因,有助于快速诊断和修复。
  1. 灾难恢复计划(DRP)
  • 问题:遇到严重的自然灾害、硬件故障或安全事件,导致系统完全或部分不可用。
  • 解决方案:制定和实施灾难恢复计划,包括备份数据中心、数据冗余和跨区域备份等措施,以确保在灾难发生时能够快速恢复业务。

这些方案都旨在保障系统在面对突发情况或问题时能够快速恢复正常运行,减少对用户和业务的影响。具体的实施策略应该根据具体的业务需求和系统架构来进行调整和优化。

通用性比较强

这个在以后开发中属于是业务问题 和整合没有什么关系

我们应该根据需求来解决问题

条件查询

之前我们写了那么多

我们也能明白 其实条件查询就是我们我们在点击查询按钮后

执行分页的时候

我们输入在搜索框里的数据 能数据模型带走

用前端的axio发异步请求传入controller层执行查询工作

首先我们得去找数据模型在那绑定的

找到数据模型

发送请求的时候这些数据都要带走

我们让其绑定数据模型

我们直接绑定分页的数据模型

<div class="filter-container">
    <el-input placeholder="人员名称" v-model="pagination.name" style="width: 200px;"
              class="filter-item"></el-input>
    <el-input placeholder="人员年龄" v-model="pagination.age" style="width: 200px;"
              class="filter-item"></el-input>
    <el-input placeholder="人员性别" v-model="pagination.gender" style="width: 200px;"
              class="filter-item"></el-input>
    <el-button @click="getPage()" class="dalfBut">查询</el-button>
    <el-button type="primary" class="butT" @click="handleCreate()">添加</el-button>
</div>

现在就能封装了

我们接下来要在函数部分书写

让填入的参数连接到数据模型中的属性

数据模型被按钮带走查询

我们我们选择在分页查询里封装数据

这样加载控制台就能打印

数据连接上

测试一下看看在控制台能不能看见传入的这些参数

打印输出成功

接下来就要到controller层把数据接出来

现在controller层把数据传过去

但是在业务层没有对应的方法

我们还要去业务层修改

两个方法

业务层接口修改完去业务层实现类去实现接口中的方法

条件组织 实现了 动态查询

getPage() {
    if (this.pagination.name == "" && this.pagination.age == "" && this.pagination.gender == "") {
        //不用连接动态数据
        console.log("getPage null run")
    }
    //连接动态数据
    param = "?name=" + this.pagination.name;
    param += "&age=" + this.pagination.age;
    param += "&gender=" + this.pagination.gender;
    //组织参数 拼接url请求地址
    console.log(param);
    //运行分页查询成功
    console.log("getPage  run")
    axios.get("/users/" + this.pagination.currentPage + "/" + this.pagination.pageSize + param).then((res) => {
        this.pagination.pageSize = res.data.data.size;
        this.pagination.currentPage = res.data.data.current;
        this.pagination.total = res.data.data.total;
        this.dataList = res.data.data.records;
    });
 
},
目录
相关文章
|
7天前
|
前端开发 JavaScript
前端一键回到顶部案例
本文介绍了如何实现网页中的一键回到顶部功能,包括两种方法:第一种是通过HTML中的锚点跳转实现快速回到顶部;第二种是使用JavaScript的`scrollTo`方法结合`requestAnimationFrame`实现滚动动画效果,让页面滚动更加平滑自然。
11 1
前端一键回到顶部案例
|
8天前
|
前端开发 JavaScript API
前端JS读取文件内容并展示到页面上
前端JavaScript使用FileReader API读取文件内容,支持文本类型文件。在文件读取成功后,可以通过onload事件处理函数获取文件内容,然后展示到页面上。
15 2
前端JS读取文件内容并展示到页面上
|
4天前
|
前端开发 API
(WEB前端编辑DWG)在线CAD如何实现图形识别功能
mxcad 提供的图形识别功能可帮助用户快速识别和提取 CAD 图纸中的各种图形,如直线、多段线、弧线、圆及图块,显著提升设计效率。此功能不仅适用于图形分类,还能进行数量统计和快速定位,减少手动操作。用户可通过 API 进行二次开发,自定义识别逻辑。具体步骤包括打开在线示例、选择识别功能、设置识别参数并开始识别。更多开发文档请关注公众号:梦想云图网页 CAD。
|
7天前
|
JavaScript 前端开发
前端基础(十)_Dom自定义属性(带案例)
本文介绍了DOM自定义属性的概念和使用方法,并通过案例展示了如何使用自定义属性来控制多个列表项点击变色的独立状态。
19 0
前端基础(十)_Dom自定义属性(带案例)
|
9天前
|
JSON 前端开发 JavaScript
socket.io即时通信前端配合Node案例
本文介绍了如何使用socket.io库在Node.js环境下实现一个简单的即时通信前端配合案例,包括了服务端和客户端的代码实现,以及如何通过socket.io进行事件的发送和监听来实现实时通信。
14 2
|
9天前
|
存储 JSON 前端开发
node使用token来实现前端验证码和登录功能详细流程[供参考]=‘很值得‘
本文介绍了在Node.js中使用token实现前端验证码和登录功能的详细流程,包括生成验证码、账号密码验证以及token验证和过期处理。
19 0
node使用token来实现前端验证码和登录功能详细流程[供参考]=‘很值得‘
|
21天前
|
前端开发
【前端web入门第五天】03 清除默认样式与外边距问题【附综合案例产品卡片与新闻列表】
本文档详细介绍了CSS中清除默认样式的方法,包括清除内外边距、列表项目符号等;探讨了外边距的合并与塌陷问题及其解决策略;讲解了行内元素垂直边距的处理技巧;并介绍了圆角与盒子阴影效果的实现方法。最后通过产品卡片和新闻列表两个综合案例,展示了所学知识的实际应用。
29 11
|
7天前
|
前端开发 JavaScript
前端基础(一)_前端页面构成
本文介绍了前端页面的基本构成,包括HTML(负责页面的结构和语义)、CSS(负责页面的样式和表现)和JavaScript(负责页面的行为和动态效果)。文章通过示例代码展示了如何使用这三种技术来创建一个简单的网页,并解释了HTML文档的结构和语法。
16 0
|
19天前
|
SpringCloudAlibaba JavaScript 前端开发
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
分布式组件、nacos注册配置中心、openfegin远程调用、网关gateway、ES6脚本语言规范、vue、elementUI
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
|
2月前
|
存储 前端开发 JavaScript
前端语言串讲 | 青训营笔记
前端语言串讲 | 青训营笔记
29 0
下一篇
无影云桌面