如何将Redux应用转换为GraphQL / Apollo?

时间:2020-07-01 06:16:55

标签: reactjs redux graphql apollo

我正在重构一个使用redux的express + react应用,我想切换到graphql(apollo),但是我有一些不清楚的地方。

因此,一般流程是有GET请求来获取数据(对象数组),然后将数据存储在redux存储中,并使用分页并显示为列表的选择器。然后,用户可以编辑条目(在redux存储中修改条目),然后他可以“发布”以从redux存储获取数据并调用POST端点。

如何在graphql中建模?我是否使用graphql查询(在DB中使用offset / limit)进行分页? 然后,一旦完成编辑后,如何修改内存中的条目并立即发布所有条目?

1 个答案:

答案 0 :(得分:1)

在阿波罗中,这非常简单:

  • 提取的数据存储在规范化缓存中(列表和项目分开);
  • 组件可以使用useQuery挂钩来获取数据(使用缓存客户端);
  • 渲染具有编辑功能的项目;
  • 在您的onChange / onSave事件上调用突变函数(从useMutation钩返回),将一个或多个记录数据(要更新)作为变量传递;
  • 发送到API的
  • 数据会产生响应(突变解析器),您可以使用它(在onCompleted处理程序中)更新本地缓存(writeQuery)或调用refetch查询(通过从{{调用fn / handler 1}}),两者都将强制使用更新后的数据重新渲染组件;

是的,可以使用查询变量进行分页,获取更多信息等。