在反应应用程序中组织客户端查询定义并考虑到封装

问题描述

我目前正在使用 @apollo/client 开发一个新的 React 项目。
我所知道的两种策略是:

我的首选方法是将数据依赖项(查询定义)与其各自的组件搭配在一起,因为这对于代码/逻辑的封装(鸭子式)效果更好。

尽管在缓存方面,我正在努力解决封装问题。该应用程序使用 apollo 的 InMemoryCache。使我目前使用的缓存无效的解决方案是向 refetchQueries 钩子的 useMutation 选项提供查询。这样,在数据库中创建新条目后,将再次获取提供的查询,这很好,但会产生相当多的网络流量。更糟糕的是,它会强制执行更改的模块了解所有其他模块,这些模块将使用包含先前创建/更新的数据库条目的数据。

或者,我可以手动更新缓存,但它确实存在与缓存(有序)列表或其他模块的分页项可能因突变而更改的问题相同的问题。

我能找到的关于这个主题文章无法提供一个令人信服的机制,可以很好地扩展:


所以我想知道是否有人想出了一个方法来组织无效的缓存条目,同时保持封装的完整性,同时保持分页。我的目标是能够向/从应用程序添加新模块或从应用程序中删除现有模块,这些模块可以执行不会自动更新缓存的查询(例如添加/删除项目),而无需编辑/记住所有其他工作模块或显示相同的数据。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)