我应该在路由器导航上重置商店状态吗?

Posted

技术标签:

【中文标题】我应该在路由器导航上重置商店状态吗?【英文标题】:Should I reset store state on router navigations? 【发布时间】:2018-02-12 09:18:18 【问题描述】:

TLDR:大量数据,您是否需要根据记忆重新设置导航存储中的数据?

假设我有大量数据,数据库中有几十万个条目,并且该会话中的用户向下滚动了我的无限滚动容器很多次,它获取了很多,至少有一千个实体.

然后,他决定导航到另一个显示其他内容的页面,与之前的页面数据无关。

我应该在导航中清除上一页的状态切片吗?所以应用程序不会得到高内存使用等..?

如果是这样,有没有一种内置的方法可以做到这一点?我发现的唯一方法是在每次导航之前向商店发送重置操作,有没有更清洁的方法?

注意:用户在使用应用程序时可能会返回到上一页。

我发现this 的问题有点解决同样的问题,但不是记忆,更多的是更清洁的应用流程。

任何见解都将受到高度赞赏!

【问题讨论】:

【参考方案1】:

如果数据真的很多,那么将它们全部保存是不明智的,因为浏览器内存。

优化您的应用取决于许多因素(用户使用应用的平均时间、频繁更改的数据等)。但是,如果您已经实现了无限滚动,我想最好的方法是保存第一页(或前几页)结果。用户将获得快速数据加载的印象,并且无限滚动仍将执行其功能。

【讨论】:

我明白了,谢谢你的回复。你能解决如何重置商店的问题吗?感觉应该有一种更简洁的方式与路由集成来重置导航上的应用程序的某些部分,而不是仅仅调度重置操作

以上是关于我应该在路由器导航上重置商店状态吗?的主要内容,如果未能解决你的问题,请参考以下文章

react-router-redux 5:维护导航中的商店状态历史记录

Redux 商店使用 nextJS 自行重置路由更改

Angular+ngrx:如何在路由器 url 遍历中保持存储状态?

k2p刷固件后需要重置吗

Next.js 在屏幕之间导航时维护路由

React Native导航和状态管理