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;
    });
 
},
目录
相关文章
|
9月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
伪类:伪类这个叫法源自于它们跟类相似,但实际上并没有类会附加到标记中的标签上。 伪类分为两种(以及新增的伪类选择器): UI伪类:会在HTML元素处于某种状态时(例如:鼠标指针位于连接上),为该元素应用CSS样式。 :hover 结构化伪类:会在标记中存在某种结构上的关系时 例如: 某元素是一组元素中的第一个或最后一个,为该元素应用CSS样式。 :not和:target(CSS3新增的两个特殊的伪类选择器)
1166 2
|
9月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
上下文选择器(迭代选择器):基于祖先或同胞元素选择一个元素 ID和类选择器:基于id#和class的属性值进行选择元素。 属性选择器:基于属性的有无和特征进行选择。 ①上下文选择器: 上下文选择器的语法格式:标签1 标签2{属性:值;} //注意:组合选择器和上下文选择器的区别,组合选择器以逗号隔开, 上下文选择器以空格隔开 ②特殊的上下文选择器 子选择器> : 语法格式:标签1>标签2 解释说明:标签1和标签2
501 1
|
前端开发 安全 开发工具
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
1119 90
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
778 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
存储 前端开发 JavaScript
调用DeepSeek API增强版纯前端实现方案,支持文件上传和内容解析功能
本方案基于DeepSeek API增强版,提供纯前端实现的文件上传与内容解析功能。通过HTML和JavaScript,用户可选择文件并调用API完成上传及解析操作。方案支持多种文件格式(如PDF、TXT、DOCX),具备简化架构、提高响应速度和增强安全性等优势。示例代码展示了文件上传、内容解析及结果展示的完整流程,适合快速构建高效Web应用。开发者可根据需求扩展功能,满足多样化场景要求。
4282 64
|
IDE 前端开发 开发工具
用通义灵码IDE做产品高保真原型和前端页面
通义灵码IDE助力高效开发,告别传统Axure原型图的繁琐沟通。通过该工具可直接生成高保真产品原型与前端页面,大幅提升客户确认效率及满意度。现已将相关演示发布至B站(https://www.bilibili.com/video/BV18qT7ziEb7/?vd_source=dc6a6864c895818db6ce4170d50b3557),欢迎体验!用直观操作代替反复说明,让交付更流畅。
|
Dart 前端开发 容器
【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
567 18
【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
1069 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
1268 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
|
Dart 前端开发 Android开发
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
551 4
【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex

热门文章

最新文章

  • 1
    前端如何存储数据:Cookie、LocalStorage 与 SessionStorage 全面解析
    1243
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    556
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    428
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    430
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    543
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    720
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    1404
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    312
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    1166
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    501