微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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

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

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

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


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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。