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