管理端的列表页检索条件缓存问题

文章探讨了在Vue应用中实现缓存的各种方式,包括vue-page-stack、sessionStorage、cookie、URL参数、Vuex状态管理等,并分析了各自的适用场景和优缺点。推荐在列表检索条件缓存中使用Vuex,但强调了在使用Vuex时需要注意的细节和可能遇到的问题,如检索条件的重置、页面状态管理以及高级检索条件的特殊处理。
摘要由CSDN通过智能技术生成

部分可参考实现方式:
1、vue-page-stack(极少使用)
npm地址:https://www.npmjs.com/package/vue-page-stack
git地址:https://github.com/hezhongfeng/vue-page-stack
可参考博客:https://blog.csdn.net/hezf_hero/article/details/105631522
不可随意使用,使用时,刷新页面调用方式需使用activated生命周期。
push会生成渲染新的页面,具体使用时存在不方便刷新页面,清除缓存等问题。所以之前在用户端有过使用,但放弃了。(如果后续实在有特殊需要时可考虑)。
在这里插入图片描述

2、sessionStorage(常用)
使用浏览器sessionStorage对条件进行缓存存取,但要注意session名不能和其他session重复,而且清除的时候要手动清除,刷新时不会消失。若不手动清除则只会在浏览器关闭时清除!
3、cookie(极少使用)
使用浏览器cookie进行缓存存取,在浏览器关闭时不会清除,一般需要手动清除或者设置过期时间。多数情况下都不使用(依具体情况决定)。
4、url用?分隔的search传参或者vue路由query传参(偶尔使用)
两种方式都可以传递参数,具体方式自行百度,比较简单,但需要注意的是,如果参数较多时不要使用,以免超过长度限制,造成不能完整传递参数,尤其是url后问号传参。
5、vuex中state存取(常用)可根据需要结合sessionStorage使用。
文档:https://vuex.vuejs.org/zh/guide/state.html
此方式存取的变量如果未被sessionStorage缓存则刷新时会重置为初始状态。
6、结论:
1、综合考量以上常用方式,在我司中台类列表检索条件缓存中比较推荐使用第5种vuex中state存取,因为目前考虑刷新或切换不同路由时应重置检索条件为初始状态,只在进入下级页面点击下级页面返回按钮时保存检索条件。其中第1种会缓存页面,切换不同路由时也不会清除页面缓存,并且清除缓存或刷新时使用特定生命周期比较麻烦也不适用。第2种的session需要手动清除,否则只会在关闭浏览器时清除。而第3、4种不适用该场景。
2、需要注意的是,不管使用1还是2还是5,面临的改动都是比较多的。
3、若采用第5种方式,需要在列表首页存取检索条件,进详情或其他子页面组件时存储。返回首页组件在created或mounted时取出。目前的问题时如何使改动时调用存取的步骤更简化,并在第一个实例时检查是否存在使用后导致的其他问题。
第5种方式具体实例:其中第2、3步骤在各个需要使用缓存检索条件的列表的首页调用处理。这里未使用sessionStorage。
这里首先考虑有个问题:列表如果是到新增页面取新增了回来或者在当前页面删除,导入等操作。是否要清空重置检索条件。如果要考虑,不管怎么都会很麻烦了。这里需要组长产品等给出意见?
1、在vuex相关文件创建一个公有状态,给各个列表使用。
在这里插入图片描述

2、在首页的列表检索方法如search时调用以缓存,这里的表单检索条件对象名有可能叫searchForm,可能是其他,看文件具体命名取用。注意调用缓存方法时的位置,有些时候调用检索的时候可能对参数拷贝后做了处理的,我们要保存的是处理之前的原始参数。要注意。
在这里插入图片描述

3、在首页的created或者mounted中(具体看各个文件的写法,但一定要在页面执行检索之前赋值)判断该值是否存在,存在则取用。一定要注意到底这里的检索条件对象是不是命名为searchForm
在这里插入图片描述

4、在Router.beforeEach处调用清空,这样切换路由时既可清除检索条件的缓存。
在这里插入图片描述

5、如果遇到这种情况
在这里插入图片描述

这里在mounted调用search可能是有原因的,则可以这样修改。具体情况一定要具体分析一下,不要随便粘贴就完了,一面产生问题到时候还不好排查。
在这里插入图片描述

高级检索条件缓存
在中台高级检索和列表检索条件是单独生效的并且如果有高级检索条件,列表检索条件是不生效的,所以在使用时需要分开缓存
在这里插入图片描述

高级检索条件缓存位置
在这里插入图片描述

其他步骤和列表检索条件的缓存相同,但是有需要注意的点

1.清除高级检索条件
在这里插入图片描述

在使用普通搜索时我们需要把高级检索缓存的内容清空,不然我们在使用了高级检索产生缓存,然后再使用列表检索条件,之后我们进入详情再返回,这里会使用高级检索的缓存条件,在后端逻辑中,只要有高级检索条件就会优先使用高级检索

2.树节点点击
在这里插入图片描述

中台部分列表有组织机构树,可以通过点击进行列表数据筛选,我们在这个时候也需要进行缓存,同时和检索条件一样,需要清除高级检索条件缓存。

3.分页缓存
在这里插入图片描述

在选择下一页或者每页展示条数的时候就需要缓存,在选择每页条数的时候需要把页码重置为1

在这里插入图片描述

每次加载组件的时候获取一下

在这里插入图片描述

在具体页面中我们只需要获取页码就可以了
在这里插入图片描述

使用搜索按钮的时候需要单独把以前search事件内的内容单独拿出来,在每次搜索的时候需要重置页码,但是不能影响到以前的search事件内的内容
在这里插入图片描述

同时在点击树节点的时候需要单独调用search,并且重置页码
在这里插入图片描述

点击重置按钮的时候
在这里插入图片描述

在原本的search事件中我们需要使用我们缓存的页码来进行搜索,在从详情页面返回的时候可以保持在当前页

也是在页面路由切换的时候需要重置页码和每页展示数量

存在store
特别注意事项
检索条件中有一些参数是经过特殊处理之后才传给后端的 所以我们保存的参数需要重新处理才能够回显到检索列表
例如 :寝室中的院专班
在这里插入图片描述

因为使用的是特殊组件进行渲染,所以需要特殊处理这里就可以利用组件自带的方法 changeYzb 来进行重新渲染,其他地方通过对应的方法来重新渲染
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值