reactjs - 管理数据驱动的 redux 应用程序中未使用的数据
问题描述
想象一个数据驱动的应用程序,比如在 react redux 中实现的酒店管理软件,现在我们有多个页面,比如用户、签到、服务、发票等。
在打开每个页面时,数据是从 API 加载并存储在 redux 存储中的,所以我的问题是在导航到新页面时处理先前获取的数据的常见设计模式是什么,显然在导航到发票时不需要用户作为发票 API提供与每张发票相关的最少用户信息。
- 那么我们是否应该在
ComponentWillUnmount
导航到发票时卸载商店中的用户? - 我们应该将数据留在存储中吗?
- 我们是否应该使用单个数组来保存我们的数据并每次都覆盖它?
根据您的经验,有哪些最佳实践?
解决方案
根据您的经验,有哪些最佳实践?
通常,我们始终可以遵循这些准则作为规则。一切都会到位。
我们是否应该使用单个数组来保存我们的数据并每次都覆盖它?
如果您有一些不太复杂的数据(例如发票),也需要列出但不经常更新,则使用数组可以正常工作。我们还可以使用选择器或实用程序来选择特定的发票和更新组件。
如果我们有经常更新的数据或有嵌套列表,那么建议将其设为扁平化(标准化)。这是详细阅读:
假设发票经常更新?我们可以保留发票地图
{
"invoiceId1" : {},
"invoiceId2" : {}
}
那么当我们导航到发票时,我们应该在 ComponentWillUnmount 中卸载存储中的用户吗?我们应该将数据保留在存储中吗?
这取决于用例。假设我们有一个(路由)或页面组件都遵守
- 复杂数据
- 总独立数据
然后建议清除它,否则它应该是好的。但是在 redux 中,如果我们正在规范化存储,那么它应该不是问题。请仔细阅读这个与 redux-performance 相关的常见问题解答,它将清楚地说明 Redux 中的内存管理。
推荐阅读
- .net - 我们可以在没有 Internet 访问(离线)的远程 VM 中安装 azure 部署组代理吗?
- android - 在 Android 上实时跟踪期间的计数问题
- javascript - AWS s3 javascript sdk:文件密钥将空格编码为 %20 使用端点参数解决此问题的任何方法?
- java - 如何使用 Java 中的 API KEY 身份验证正确签署对 Coinbase V2 API 的请求
- javascript - 获取用户头像时出错 (discord.js)
- reactjs - 类型“ThunkAction”上不存在属性“then”
- c# - 从 C# 引用不同的 ActiveX 版本作为一个
- mysql - Upsert 仅插入而不更新现有字段
- flutter - Dart Double to String 有时是 5900.0 有时是 5900
- iphone - 图片不会在 iPhone 上加载