element-plus分页 项目中 列表页 页码总是回到1~

你们好,我是金金金。

场景

  • 首先我是在列表页,然后我首先点击第二页,使之页面数据显示第二页的,此时我点击新增,再次点击返回,结果列表页的页面数据是在第二页 这个没问题,但是页码回到了第一页,我想要的是 页面也继续保持 第二页。

排查

可以看到我这里是通过v-if来显示控制隐藏的

我们来看看returnTo到底什么呢?

  • 可以很清晰的看见就是改变了routerType的值,从而根据逻辑动态显示隐藏页面

造成error的原因

  • 排查中发现,导致页码回到第一页的原因就是v-if渲染所造成,因为它会让页面重新渲染。我尝试过 点击新增操作时,把当前的页码对象传递给子组件,然后我子组件里面点击返回时,再把页面对象传递给父组件从而实现记录保持住页码,但是也依旧无效,即使页码是对的,依然回到第一页。

解决

  • 我们知道导致问题的原因就是v-if所导致,那么我们就采用v-show的方式

我这里列表页采用的是v-show,里面的子组件是v-if(v-show 加载列表页的时候会同时把子组件加载了,导致点击编辑的时候数据赋值不上去)

  • 此时列表页采用的v-show,也不需要给Content组件传递页面数据了。

  • Content组件点击返回触发的事件

    • 通知父组件改变状态
  • 然后index列表页组件 改变状态即可

注意:可能有细心的小伙伴就发现了returnTo函数怎么没调用获取列表数据的函数呢?那修改了数据岂不是不会更新? 因为我这里修改 或者新增 操作成功的时候我使用emit向父组件发射了事件 动态更新了列表,这样做的好处是如果用户没有新增或者编辑 则不调用接口获取数据。所以不需要在returnTo函数里面去调用获取列表数据的函数。

总结

原因就是我列表页用了v-if重新渲染导致页码总是回到1,采用v-show方式即可。

  • 编写有误还请大佬指正,万分感谢。
相关推荐
jay神36 分钟前
基于 YOLOv8 的轴承缺陷检测(Web 版)
前端·人工智能·yolo
jay神44 分钟前
基于 YOLOv8 的森林火灾检测系统(Web 版)
前端·yolo
code2cat1 小时前
HTML基础篇之第一张网页:从index.html到浏览器里的任务清单
前端·html
miss2 小时前
AI 改完不敢上线?OpenSpec 规约驱动开发实战
前端·代码规范·前端工程化
AiMan2 小时前
腾讯ima还是不可以导出左侧所有对话,只能单条导出,方法不对吗
前端
去伪存真2 小时前
并发量一高就装死?Agent 全链路“防猝死”手册
前端·agent
Moment2 小时前
AI 编程时代,聊聊我的 Mac mini 双屏桌面
前端·后端
AiMan2 小时前
先确认能不能一次把Microsofat Copilot所有内容打包一个文件导出
前端
总要学点什么3 小时前
第97篇:三维数据加载-城市建筑白模自定义着色器——让一条光带沿高度扫上去,快慢却由帧率说了算
前端·gis·webgl·cesium·着色器·空间分析·白模
上海懒图科技3 小时前
工厂厂区电子地图定位导航:厂区人车精准定位,安全合规双保障
前端·arcgis·vue