我创建了一个使用通量模式并从API中提取数据的应用。 这是更新数据现在的工作原理:
get()
操作到目前为止,此工作正常。但现在我想知道我将如何进行过滤。例如。对于特定组件(“通知”)我只想返回未读通知或给定时间段内的通知。
当我实施操作getByStatus(status)
getByDate(start, end)
时,整个商店将只包含未读通知或时间段中的通知,当您想要同时显示所有通知和未读通知时,这是一个问题时间。
这是使用javascript / lodash或类似方法创建过滤方法的唯一方法吗?这会使服务器端的任何过滤都过时,并导致大量(不需要的)流量。
而创建像“UnreadNotificationStore”这样的独立商店将是非常难以处理的,并且在时间段的情况下问题仍然存在。
我能想到的唯一方法是在不更新商店的情况下添加getByStatus(status)
操作,并将数据直接返回到组件。
答案 0 :(得分:1)
您实际上是在谈论从内存客户端已有的有效负载中过滤项目,还是需要从服务器上为这些“过滤器”进行新的提取?
如果只是过滤客户端:
collection
分支内。filter
变量中。collection
方法过滤您的.filter
,并将过滤后的ID存储在filteredCollection
变量中。getFilteredItems
,它会将您过滤的ids返回到collection
中的完整记录。如果每次从服务器获取:
filteredCollection
中,而不仅仅是ID。 (除非你最终会在内存中结束大量数据,在这种情况下你可以考虑维护一个集合,你可以通过服务器的每次提取来扩充,然后从中进行过滤,但这会增加一些复杂性,我不会除非你确定你会有记忆问题,否则不建议。)还有许多其他可能性,但这是一个合理的起点。