angular - 我应该在每个路由器导航上重置我的 redux 存储吗?

标签 angular redux ngrx

我使用 Angular 编写应用程序,并通过 ngrx/store 使用 Redux 来存储我的应用程序状态。

一切工作正常,但现在我的应用程序变得相当大,我得到了以下观察结果:

对于几乎每个页面/资源,我都使用不同的解析器从后端获取正确显示和在此特定页面上操作所需的所有数据。

这个解析器允许我使该页面独立于应用程序的先前状态。

因此,如果应用程序已加载并启动,则可以说: https://myapp.com/resourcetype1/resourceId

解析器将加载 ID 为 resourceIdresourcetype1,以便我的页面开箱即用。

知道这一点后,我想知道在每个路由器导航启动时完全重置我的 redux 存储是否是一个好主意

我认为这有两个好处:

  • 提供更干净的 Redux 存储,没有先前执行的页面中的残留数据。
  • 在每个“页面显示”之前提供一个空存储,这有助于检测页面何时使用之前加载的页面中的数据(因此,如果使用其 urm“直接”加载,该页面可能会崩溃)。

所以问题是:

  • 您对这个 react 有何看法?
  • 您对此有何习惯?
  • 您是否会在某个时候重置您的 redux 存储?

最佳答案

这实际上取决于您的应用程序!

例如,如果您使用 Redux,因为每个页面都有一组复杂的数据需要处理,而且每个页面都完全独立于其他页面,也许您可​​能希望在每次更改之间清理它。

不过感觉有点奇怪。你说的资源是什么?您不会回到以前的资源吗?

在我的一个应用程序中,我确实有工作区。每个工作区都可以包含大量数据。用户不会经常改变他们的工作空间,当他们改变时,很可能不会再回到之前的工作空间。因此,每当用户导航到另一个工作区时,我都会清理(几乎)所有 reducer 。

但是,只要用户位于同一工作区,我就会保留大部分信息。这很棒,因为一开始当用户刚刚选择一个工作区时,它几乎什么也没有。然后,当他浏览一些详细信息时,应用程序将获取数据并将它们存储在相应的 reducer 中。

因此,当用户回来查看某些数据时,第一次在应用程序获取数据时会出现延迟,第二次+时,用户会(立即)看到存储中已有的内容。当然,它仍然尝试获取数据以确保其是最新的,但如果数据没有更改,用户就可以轻松地与其交互。

关于angular - 我应该在每个路由器导航上重置我的 redux 存储吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44120080/

相关文章:

javascript - 在单页应用程序中创建临时 URL

javascript - 在 React.js 中创建可重用的辅助函数

angular - 如何将 Observable 数组合并为具有相同返回类型的单个 Observable

Angular 内插值未在订阅时更新

javascript - Angular 8 组件嵌套在同一个组件事件发射器中

angular - 多个 Mat Paginator 无法在 Angular 组件中工作

redux - 在 flutter redux 中处理异步事件的最佳方式

angular - 如何在ngrx Angular2中将数据从父路由传递到子路由

Angular 日期管道在文本框中无法正常工作

javascript - 如何避免对服务器 URL 进行硬编码