请教大家一个关于前端数据刷新策略的问题。主要的场景就是从列表进入详情页面,在详情页面修改了数据后返回列表数据如何刷新的问题。
不知大家有没有具体解决此类问题的方案,如果知道的话请不吝赐教。不管是重新发起网络请求获取数据,还是利用状态管理本地处理修改后的数据,但我都不知道在何时怎样具体的处理才算是一个 BestPractice 。 类似的场景除了标题描述,还有类似于详情页进入修改页面,修改后返回详情页。往往列表页面都是分页获取数据,请考虑返回时列表的滑动和页码状态。
不知大家有没有具体解决此类问题的方案,如果知道的话请不吝赐教。不管是重新发起网络请求获取数据,还是利用状态管理本地处理修改后的数据,但我都不知道在何时怎样具体的处理才算是一个 BestPractice 。 类似的场景除了标题描述,还有类似于详情页进入修改页面,修改后返回详情页。往往列表页面都是分页获取数据,请考虑返回时列表的滑动和页码状态。
除了上面的办法,你可以自己刷新数据。好处是不用请求接口,也就没有卡顿。缺点是不能及时刷新列表的其他数据。
如果觉得列表无刷新比较麻烦,那就这样
1.新增成功后列表页码重置为 1,查询条件不变,请求数据
2.编辑成功后列表页码不变,查询条件不变,请求数据
3.删除成功后,根据数据总数计算页码是不变还是减一,请求数据
前端路由可以 keep-alive.
还有一种分片加载的方案.
将页面分为若干片,高度固定为 pagesize*item 高度.页面加载 /滚动时检查自身是否在视口(可以用 MutationObserver 实现).若在,则发起请求用数据替换占位图(数据来源无所谓,缓存也好,请求也罢,无关).
这样只需要记一个滚动高度即可,从详情跳回来与滚动到了再加载逻辑是一致的.
服务端有其它客户端提交的更新, 用服务端推送, 客户端判断 id 是否重复再刷新.