我正在使用Angular编写我的应用程序,并使用 Redux 通过 ngrx / store 来存储我的应用程序状态。
一切正常,但是现在我的应用程序变得非常大,我得到了以下观察结果:
对于几乎每个页面/资源,我使用从后端获取的不同解析器,正确显示和处理此特定页面所需的所有数据。
此解析器允许我使此页面独立于应用程序的先前状态。
因此,如果应用程序已加载并启动,请说: https://myapp.com/resourcetype1/resourceId
解析程序会加载ID resourceId 的 resourcetype1 ,以便我的网页能够开箱即用。
知道了, 我想知道在每个路由器导航开始时完全重置我的redux存储是否是个好主意 。
我认为这可能有两个好处:
所以问题是:
答案 0 :(得分:2)
这实际上取决于你的申请!
例如,如果您正在使用Redux,因为每个页面都有一组要处理的复杂数据,但每个页面都完全独立于其他页面,也许您可能希望在每次更改之间清除它。
虽然感觉有点奇怪。您正在谈论的资源是什么?你不会回到以前的资源吗?
在我的一个应用程序中,我确实有工作区。每个工作区都可以包含大量数据。用户不会经常更改他们的工作区,当他们这样做时,他们可能不会回到前一个工作区。因此,每当用户导航到另一个工作区时,我都会清理(几乎)所有的Reducer。
但是,只要用户在同一个工作区,我就会保留大部分信息。这很好,因为在用户刚开始选择工作区时,它几乎没有任何内容。然后,当他在一些细节中导航时,应用程序将获取数据并将其存储在相应的reducer中。
因此,当用户返回查看某些数据时,第一次在应用程序获取数据时出现延迟,第二次和+,用户会看到已经进入商店的内容(立即)。当然,它仍然会尝试获取数据以确保它是最新的,但如果它没有改变,用户就可以在呼吸中与它进行交互。